🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Python Marco - Pdf export

Alles zur Programmierung im LibreOffice.
Antworten
poor
Beiträge: 6
Registriert: Sa 13. Jun 2015, 19:55

Python Marco - Pdf export

Beitrag von poor » Sa 13. Jun 2015, 20:07

Hallo Freunde,

ich würde gern ein Makro in Python schreiben um ein pdf des aktuellen Dokuments zu generieren, was ich anschließend mit python manipulieren möchte. Außer 2-3 Python Macro-Beispiele habe ich keine API oder ähnliches finden können.

Wo finde ich die API oder Wie kann ich das aktuelle Dokument als pdf in einer Variable speichern?


Vielen Dank für die Hilfe,
Christian

komma4
Beiträge: 185
Registriert: Sa 13. Aug 2011, 10:01
Wohnort: Chonburi Thailand Asia
Kontaktdaten:

Re: Python Marco - Pdf export

Beitrag von komma4 » Sa 13. Jun 2015, 22:23

Du kennst Google? Liefert mir 106.000 Treffer bei der Suche nach "Libreoffice python macro".

Die API zu LO findest Du beim Projekt.

Ich würde übrigens das Dokument ändern und dann exportieren, nicht im PDF ändern (wollen). Aber vielleicht kannst Du mit Python besser PDFs ändern, als im Netz "suchen" :twisted:

Ein Codestück aus dem alten oooforum (meist sehr schlecht erreichbar)

Code: Alles auswählen

# filter data
fdata = []
fdata1 = PropertyValue()
fdata1.Name = "SelectPdfVersion"
fdata1.Value = 1
fdata2 = PropertyValue()
fdata2.Name = "Quality"
fdata2.Value = 100
fdata.append(fdata1)
fdata.append(fdata2)

args = []
arg1 = PropertyValue()
arg1.Name = "FilterName"
arg1.Value = "writer_web_pdf_Export"
arg2 = PropertyValue()
arg2.Name = "FilterData"
arg2.Value = uno.Any(
"[]com.sun.star.beans.PropertyValue", tuple(fdata) )
args.append(arg1)
args.append(arg2)
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)

poor
Beiträge: 6
Registriert: Sa 13. Jun 2015, 19:55

Re: Python Marco - Pdf export

Beitrag von poor » Sa 13. Jun 2015, 22:36

Danke für die Hilfe Winfried - Deine Idee funktioniert bestens:

Code: Alles auswählen

import uno

from com.sun.star.beans import PropertyValue

def pypdf_test():

    desktop = XSCRIPTCONTEXT.getDesktop()
    doc = desktop.getCurrentComponent()

    # filter data
    fdata = []
    fdata1 = PropertyValue()
    fdata1.Name = "SelectPdfVersion"
    fdata1.Value = 1
    fdata2 = PropertyValue()
    fdata2.Name = "Quality"
    fdata2.Value = 100
    fdata.append(fdata1)
    fdata.append(fdata2)

    args = []
    arg1 = PropertyValue()
    arg1.Name = "FilterName"
    arg1.Value = "writer_web_pdf_Export"
    arg2 = PropertyValue()
    arg2.Name = "FilterData"
    arg2.Value = uno.Any("[]com.sun.star.beans.PropertyValue", tuple(fdata) )
    args.append(arg1)
    args.append(arg2)
   
    url = "file:///home/poor/Desktop/123.pdf"
    doc.storeToURL( url, tuple(args) )
   
    #doc.close(True) 
Kannst du mir sagen wie ich einen File-Dialog bekomme? Habe einen neuen Thread dazu erstellt: http://www.libreoffice-forum.de/viewtop ... 357#p36357

Danke für die Links,
Christian


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten