Makroaufzeichnung des PDF-Exports 'vergißt' Parameter?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Bridget

Makroaufzeichnung des PDF-Exports 'vergißt' Parameter?

Beitrag von Bridget » Fr, 03.11.2017 10:21

Ich bin ein Open Office Makro Newbie, und habe folgendes Problem: Es muss regelmäßig von einer größeren Anzahl calc Dateien die erste Seite als passwortgeschütztes PDF exportiert werden. Funktioniert manuell sehr gut, aber wenn ich den Vorgang als Makro aufzeichne, dann erzeugt das aufgezeichnete Makro eine PDF Datei mit allen Seiten und ohne Passwortschutz.
Ich arbeite unter Windows 7 mit Open Office 4.1.3
Vielleicht könnte einer der alten Hasen ein Blick auf das aufgezeichnete Makro werfen?

-------------------------------------------------------------------------------------------------------

Code: Alles auswählen

sub pdfexport
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/xdata/test/kw43/4711-kw43-test-wco-tt-nachtl-dissen-kuesa-1745-ts245-ag-01.pdf"
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
args1(2).Name = "FilterData"

' ich formatiere hier die Ausgabe um es etwas leserlicher zu machen, im Original ist der Teil unverändert

args1(2).Value = Array(Array("UseLosslessCompression",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("Quality",0,90,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("ReduceImageResolution",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("UseTaggedPDF",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("SelectPdfVersion",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("ExportBookmarks",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("OpenBookmarkLevels",0,-1,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("UseTransitionEffects",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("IsSkipEmptyPages",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("IsAddStream",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("EmbedStandardFonts",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("ExportFormFields",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("AllowDuplicateFieldNames",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("HideViewerToolbar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("HideViewerMenubar",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("HideViewerWindowControls",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("ResizeWindowToInitialPage",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("CenterWindow",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("OpenInFullScreenMode",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("DisplayPDFDocumentTitle",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("InitialView",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("Magnification",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("Zoom",0,100,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("PageLayout",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("FirstPageOnLeft",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("InitialPage",0,1,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("Printing",0,2,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Changes",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("EnableCopyingOfContent",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("EnableTextAccessForAccessibilityTools",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("ExportLinksRelativeFsys",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("PDFViewSelection",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("ConvertOOoTargetToPDFTarget",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("ExportBookmarksToPDFDestination",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("_OkButtonString",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("EncryptFile",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("PreparedPasswords",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("RestrictPermissions",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),
Array("PreparedPermissionPassword",0,Array(Array("PackageSHA256UTF8EncryptionKey",Array(4,-51,66,29,-69,-110,-105,42,-17,-86,-30,29,-11,-93,-40,20,-96,41,45,83,19,-50,-19,-91,-121,-14,-118,94,-98,51,59,-43)),Array("PackageSHA1UTF8EncryptionKey",Array(119,-65,-111,100,85,-41,24,43,38,-119,51,10,-110,-20,-28,-11,-97,-20,-112,-104)), Array("PackageSHA1MS1252EncryptionKey",Array(119,-65,-111,100,85,-41,24,43,38,-119,51,10,-110,-20,-28,-11,-97,-20,-112,-104))),com.sun.star.beans.PropertyState.DIRECT_VALUE), 
Array("PageRange",0,"1",com.sun.star.beans.PropertyState.DIRECT_VALUE))

dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args1())

end sub
  • Moderation: Zur übersichtlichen Darstellung des Textes und vom Programmcode im Text [​code]​[​⁠/code] Tags gesetzt. — lorbass, Moderator
-------------------------------------------------------------------------------------
Für mich sieht es so aus, als würden die Parameter bei der Ausführung nicht übergeben oder ignoriert werden?
Kann eine andere Open Office Version damit besser umgehen? Oder gibt es noch andere Möglichkeiten den Pdf Export in der gewünschten Form zu automatisieren?
Mit Python und Java kenne ich mich leider nicht aus.

Ich würde Hilfe wirklich zu schätzen wissen.

mikeleb
******
Beiträge: 631
Registriert: Fr, 09.12.2011 16:50

Re: Makroaufzeichnung des PDF-Exports 'vergißt' Parameter?

Beitrag von mikeleb » Fr, 03.11.2017 23:11

Hallo,
das folgende Makro exportiert die 1. Seite der Calc-Datei als pdf und legt sie unter dem gleichen Namen (nur mit der Endung .pdf) im gleichen Ordner ab.

Code: Alles auswählen

sub PDF_export
	'Zugriff auf Dokument
	odoc=thiscomponent
	'Setzen der Argumente für pdf-Export
	Dim arg(2) as new com.sun.star.beans.PropertyValue
	'Dateiname
	arg(0).Name = "URL"	
	arg(0).Value = converttourl(Left(odoc.url, Len(odoc.url) - 3) + "pdf")
	'Typ pdf
	arg(1).Name = "FilterName"
	arg(1).Value = "calc_pdf_Export"
	'weitere Parameter als Array
	dim aFilterData(2) as new com.sun.star.beans.PropertyValue
	'hier: Seiten und Passwortschutz beim Öffnen
	aFilterData(0).Name ="PageRange"
	aFilterData(0).Value ="1"
	aFilterData(1).Name ="EncryptFile"
	aFilterData(1).Value =true
	aFilterData(2).Name ="DocumentOpenPassword"
	aFilterData(2).Value ="test" 'dein Passwort
	
	arg(2).Name = "FilterData"
	arg(2).Value = aFilterData()
	'Datei schreiben
	odoc.storetoUrl(arg(0).value,arg())
end sub
Weitere Automatisierungen sind sicher auch noch denk- und machbar.
Gruß,
mikeleb

Bridget

Re: Makroaufzeichnung des PDF-Exports 'vergißt' Parameter?

Beitrag von Bridget » Sa, 04.11.2017 23:05

Vielen herzlichen Dank, Mikeleb! Damit kann ich weitermachen! (:-))

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste