Forum


Replies: 11   Views: 2108
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  · 30-03-2020 - 16:54

You'll have to be more specific. I followed the procedure in your "How to use macros.txt" file.

Here is what my "Module1.xba" file looks like when I copy and paste the macro:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<!--
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
-->
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Module1" script:language="StarBasic">REM  *****  BASIC  *****

Sub LosslessCompressionPdf(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>

It still doesn't work.