Forum


Replies: 11   Views: 2307
Pdf lossless compression doesn't work?
Topic closed:
Please note this is an old forum thread. Information in this post may be out-to-date and/or erroneous.
Every phpdocx version includes new features and improvements. Previously unsupported features may have been added to newer releases, or past issues may have been corrected.
We encourage you to download the current phpdocx version and check the Documentation available.

Posted by jeremie  · 31-03-2020 - 09:54

Unfortunately it still doesn't work.

File Module1.xba is installed in the right directory:

/var/www/wonder/.config/libreoffice/4/user/basic/Standard/Module1.xba

Our document to transform is called TestTransformDocument.docx. It's located here:

/var/www/wonder/www/Les_tests/TestTransformDocument.docx

We went to directory /var/www/wonder/www/Les_tests/ and we ran the following command line:

/usr/lib/libreoffice/program/soffice --invisible "macro:///Standard.Module1.LosslessPdf(/var/www/wonder/www/Les_tests/TestTransformDocument.docx)"

Nothing happened. No PDF file was created and we didn't get any error message.

 

Here is our full script in Module1.xba where we put back the MAIN command and we changed the script name to LosslessPdf:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Module1" script:language="StarBasic">REM  *****  BASIC  *****

Sub Main

End Sub

Sub LosslessPdf(cFile)

  Dim oPropertyValue As new com.sun.star.beans.PropertyValue
  Dim oPropertyData As new com.sun.star.beans.PropertyValue
  Dim oPropertyDataValue As new com.sun.star.beans.PropertyValue

  cURL = convertToURL(cFile)

  oPropertyValue.Name = &quot;Hidden&quot;
  oPropertyValue.Value =  True
  oDoc = StarDesktop.loadComponentFromURL(cURL, &quot;_blank&quot;, 0, Array(oPropertyValue))

  dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;)
  dispatcher.executeDispatch(oDoc.CurrentController.Frame, &quot;.uno:UpdateAllIndexes&quot;, &quot;&quot;, 0, Array())

  GlobalScope.BasicLibraries.LoadLibrary(&quot;Tools&quot;)
  cFileNew = Tools.Strings.GetFileNameWithoutExtension(cFile) + &quot;.pdf&quot;
  cURL = ConvertToURL(cFileNew)

  oPropertyValue.Name = &quot;FilterName&quot;
  oPropertyValue.Value =  &quot;writer_pdf_Export&quot;

  oPropertyDataValue.Name = &quot;UseLosslessCompression&quot;
  oPropertyDataValue.Value =  1
  oPropertyData.Name = &quot;FilterData&quot;
  oPropertyData.Value = Array(oPropertyDataValue)

  oDoc.storeToURL(cURL, Array(oPropertyValue, oPropertyData))

  oDoc.close(True)

End Sub
</script:module>