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 = "Hidden"
oPropertyValue.Value = True
oDoc = StarDesktop.loadComponentFromURL(cURL, "_blank", 0, Array(oPropertyValue))
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(oDoc.CurrentController.Frame, ".uno:UpdateAllIndexes", "", 0, Array())
GlobalScope.BasicLibraries.LoadLibrary("Tools")
cFileNew = Tools.Strings.GetFileNameWithoutExtension(cFile) + ".pdf"
cURL = ConvertToURL(cFileNew)
oPropertyValue.Name = "FilterName"
oPropertyValue.Value = "writer_pdf_Export"
oPropertyDataValue.Name = "UseLosslessCompression"
oPropertyDataValue.Value = 1
oPropertyData.Name = "FilterData"
oPropertyData.Value = Array(oPropertyDataValue)
oDoc.storeToURL(cURL, Array(oPropertyValue, oPropertyData))
oDoc.close(True)
End Sub
</script:module>