Seite 1 von 1

Wie exportiert man im Writer einzelne Seiten in ein PDF?

Verfasst: Do, 30.07.2009 15:35
von Mathias
Hallo,

ich versuche aus einem Dokument mehrere PDFs zu erstellen. Ein aufgezeichnetes Exportmakro für die ersten beiden Seiten sieht dann etwa so aus:

Code: Alles auswählen

sub test
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:/Dokumente/Test_1-2.pdf"
args1(1).Name = "FilterName"
args1(1).Value = "writer_pdf_Export"
args1(2).Name = "FilterData"
args1(2).Value = Array(Array("UseLosslessCompression",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("Quality",0,90,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ReduceImageResolution",0,true,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("MaxImageResolution",0,300,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("UseTaggedPDF",0,true,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("FormsType",0,0,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportFormFields",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,4,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("EnableCopyingOfContent",0,true,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("DocumentOpenPassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("RestrictPermissions",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PermissionPassword",0,"",com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("PageRange",0,"1-2",com.sun.star.beans.PropertyState.DIRECT_VALUE))

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


end sub
Während der Aufzeichnung werden die ersten beiden Seiten als PDF exportiert. Bei Ausführung des Makros hingegen wird das gesamte Dokument exportiert, "Array("PageRange",0,"1-2",com.sun.star.beans.PropertyState.DIRECT_VALUE)" wird also ignoriert. Wie lässt sich das Problem lösen? Gibt es vielleicht Vorlagen, wie man ein entsprechendes Makro schreiben kann?

Danke!

Re: Wie exportiert man im Writer einzelne Seiten in ein PDF?

Verfasst: Fr, 31.07.2009 14:12
von GrobMakrobiker
Hallo Matthias,

schau dir mal diesen Tread an:

viewtopic.php?f=18&t=24079&p=103468&hilit=pdf#p103468

Da gibt es sicherlich einige Ideen, die du einbauen kannst. auch wenn es sich zunächst um ein CALC-Dokument handelt.

Auch diese Seite ist immer hilfreich:

http://www.dannenhoefer.de/faqstarbasic/Drucken.html

Viel Glück& Nerven

Groby

Re: Wie exportiert man im Writer einzelne Seiten in ein PDF?

Verfasst: Fr, 31.07.2009 18:22
von Mathias
Hallo Groby,

danke für die Hinweise. Der Export eines Datenblattes aus Calc macht keine Probleme, hilft mir nur leider hier nicht weiter.

Konkret muss ich einzelne Bereiche Exportieren. Gibt es vielleicht sogar eine Möglichkeit wie "aktueller Bereich" beim Export?

Danke!

Re: Wie exportiert man im Writer einzelne Seiten in ein PDF?

Verfasst: Sa, 01.08.2009 12:32
von GrobMakrobiker
Hallo Matthias,

wenn es darum geht "Bereiche" in ein Dokument zu drucken, wäre ja ggf. eine Möglichkeit, diese erst in ein separates Dokument zu kopieren und dieses dann auszudrucken. Aber vielleicht verstehe ich auch nicht so richtig, was du vorhast. Im ersten Posting wolltest du aus einem Dokument mehrere PDFs drucken, im zweiten selektierte Bereiche...

Die PrintOptionen von Starbasic kann man sich hier anschauen:
http://wiki.services.openoffice.org/wik ... b_Settings
Dort ist auch die Option : Pages, mit der du ja die auszudruckenden Seiten definieren kannst.

Vielleicht wäre es ja eine Möglichkeit, die Bereiche zunächst in einem weiteren Dokument "zwischenzulagern" , um sie dann auszudrucken?

Ich würde übrigens nicht zu viel auf die Makro-Aufzeichnung geben, sondern den Druckvorgang direkt programmieren, so wie in den obrigen Links angegeben.

Viel Erfolg!

Groby

Re: Wie exportiert man im Writer einzelne Seiten in ein PDF?

Verfasst: Mi, 05.08.2009 10:12
von Mathias
Hallo Groby,

danke. Der Export ist jedoch hier http://wiki.services.openoffice.org/wik ... PDF_export beschrieben, jedoch der Abschnitt OOo Basic ist noch ein ToDo. So muss ich versuchen, wie ich das im OOo Basic realisieren kann, da ein aufgezeichnetes Makro offensichtlich nicht läuft.

Mathias