Auswahl als pdf exportieren

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

Moderator: Moderatoren

erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Auswahl als pdf exportieren

Beitrag von erikafuchs »

Schon wieder: hallo zusammen!

Da Ihr ja anscheinend alles wisst (Irgendwann kann ich ja vielleicht auch mal eine Frage beantworten):

Ich möchte aus einer Notentabelle für meine Schüler jeweils einen Bereich als pdf exportieren - das klappt auch.

Code: Alles auswählen

sub pdfExport
dim document   as object
dim dispatcher as object
dim Tabelle as object
dim zellen as object
dim con as object
dim doc as object
dim schueler as string
dim l, o, r, u as long
dim n as integer

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
doc=ThisComponent
tabelle=ThisComponent.sheets(0)
con=doc.getCurrentController()

dim args2(3) as new com.sun.star.beans.PropertyValue

l=35
for n=0 to 22 
l=l+5
o=0
r=l+2
u=36
zellen=tabelle.getCellRangeByPosition(l,o,r,u)
con.select(zellen)
schueler=tabelle.getCellByPosition(l+2,0).string

args2(0).Name = "URL"
args2(0).Value = "file:///D:/Schule/Listen%20und%20Noten/Schuljahr%2007-08/Note_2_" & schueler & ".pdf"
args2(1).Name = "FilterName"
args2(1).Value = "calc_pdf_Export"
args2(2).Name = "FilterData"
args2(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("ExportNotes",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array("ExportBookmarks",0,false,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,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("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("Selection",0,,com.sun.star.beans.PropertyState.DIRECT_VALUE))
args2(3).Name = "SelectionOnly"
args2(3).Value = true

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

end sub
Jetzt muss ich aber (hier 21 mal) bei dem sich öffnenden Fenster "pdf Optionen" das Kreuzchen bei "Auswahl" machen und dann "ok" klicken. Weiss jemand wie ich das vermeiden kann?

Grüße
Pit
moritz
*****
Beiträge: 216
Registriert: Mi, 20.10.2004 20:54

Re: Auswahl als pdf exportieren

Beitrag von moritz »

Ich mach so etwas über das Drucken von benannten Bereichen.
Moritz

sub Drucken_benannte_Bereiche
dim i As Integer
Dim oSheet As Object
Dim oBenannterBereich As Object
Dim oDoc as object
Dim selArea(0) as new com.sun.star.table.CellRangeAddress
Dim DruckEigenschaften(0) As New com.sun.star.beans.PropertyValue
Dim sURL As string
const sDateiText ="Adobe pdf- Dateien (*.pdf)"
const sDateiJoker = "*.pdf"
oDialogDruckForm = CreateUnoDialog(DialogLibraries.Standard.fmDruck)
Dialoglibraries.Loadlibrary("Standard")

oSheet = ThisComponent.getSheets().getByName(regieSheetIndex)
oDoc = Thiscomponent
oDialogDruckForm.Execute()

for i = 0 to thisComponent.NamedRanges.Count-1
if left$(thisComponent.NamedRanges.ElementNames(i),6) = "regieB" then
oBenannterBereich = thisComponent.NamedRanges.GetByIndex(i)
'msgbox "Drucke " & thisComponent.NamedRanges.ElementNames(i)
selArea(0).StartColumn = oBenannterBereich.ReferredCells.RangeAddress.StartColumn
selArea(0).StartRow = oBenannterBereich.ReferredCells.RangeAddress.StartRow
selArea(0).EndColumn = oBenannterBereich.ReferredCells.RangeAddress.EndColumn
selArea(0).EndRow = oBenannterBereich.ReferredCells.RangeAddress.EndRow
oSheet.setPrintareas(selArea())
if boDruck = True then
oDoc.Print(Array())
else
sUrlVorgabe= "Arbeitszeitbericht " & oBenannterBereich.getReferredCells.getCellByPosition(3,3).string & " von " & oBenannterBereich.getReferredCells.getCellByPosition(7,5).string & " bis " & oBenannterBereich.getReferredCells.getCellByPosition(7,7).string & ".pdf"
DruckEigenschaften(0).Name="FilterName"
DruckEigenschaften(0).Value = "writer_pdf_Export"
SaveFileDialog(sURL, sDateiText, sDateiJoker, sUrlVorgabe)
oDoc.storetoUrl(sUrl,DruckEigenschaften())
end if
Druckbereich_aus
end if
next
end Sub

Sub Druckbereich_Ein (sSht$, nStC&, nStR&, nEndC&, nEndR&)
'------------------------------------------------------------------
Dim selArea(0) as new com.sun.star.table.CellRangeAddress
Dim oDoc as object
Dim oSheet as object
Dim oSheets
Dim i%
oDoc = Thiscomponent
oSheets = ThisComponent.Sheets
oSheet = ThisComponent.currentSelection.getSpreadsheet()
oSheet.setPrintareas(array())
selArea(0).StartColumn = 1
selArea(0).StartRow = 0
selArea(0).EndColumn = 12
selArea(0).EndRow = 46
oSheet=ThisComponent.currentSelection.getSpreadsheet()
oSheet.setPrintareas(selArea())
oDoc.Print(Array())
End Sub

REM++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
REM Hier wird der Druckbereich wieder gelöscht.
REM++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sub Druckbereich_aus
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:DeletePrintArea", "", 0, Array())


end sub
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Auswahl als pdf exportieren

Beitrag von erikafuchs »

Lieber Moritz,

vielen Dank, da muss ich mich erstmal durchbeißen.

So long
Pit
Antworten