PDF-Export

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

Moderator: Moderatoren

Ibanez
**
Beiträge: 40
Registriert: Fr, 25.07.2008 09:50

Re: PDF-Export

Beitrag von Ibanez »

Ich verstehe was Du machen möchtest. Die Frage ist nur, soll das immer die gleiche Zeile sein oder verschiedene Zeilen?
Ibanez
**
Beiträge: 40
Registriert: Fr, 25.07.2008 09:50

Re: PDF-Export

Beitrag von Ibanez »

Theooo hat geschrieben:Hallo Ibanez
Die Zeile soll auswählbar sein. Könnte man ja per Inputbox machen.
Grüße Theo
Das musst Du leider selber einbinden.
Anbei das Makro, dass zumindestens die Tabelle Kopiert, PDF erstellt und Tabelle wieder löscht.
In der Sub Main2 musst Du an der entsprechenden Stelle den Pfad eingeben.

Code: Alles auswählen

sub Main1
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Name"
args1(0).Value = "Tabelle2"
args1(1).Name = "Index"
args1(1).Value = 2

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

dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Nr"
args2(0).Value = 1

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args2())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Nr"
args4(0).Value = 2

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args4())
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
Main2
end sub

Sub Main2
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/.../Test.PDF" 'BEI ... Hier entsprechenden Pfad angeben zb. Dokumente und Einstellungen/USERNAME/Eigene Dateien
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
args1(2).Name = "SelectionOnly"
args1(2).Value = true
dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())
Main3
end sub

Sub Main3
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Remove", "", 0, Array())
end sub
Greez Ibanez
MiH
Beiträge: 4
Registriert: Mo, 26.01.2009 12:17

Re: PDF-Export

Beitrag von MiH »

Leider ging das nicht so wie ich es wollte. Er hat trotz Druckbereich immer nur eine Tabelle gedruckt. Nachdem ich jetzt noch etwas gesucht habe, habe ich folgende Lösung nun im Einsatz:

Code: Alles auswählen

sub btn_print_ok
	dim o_sheets as object
	dim o_file as object
	dim doc   as object
	dim dispatcher as object
	
	o_file 		= thiscomponent
	o_sheets	= o_file.sheets
	doc		   	= o_file.CurrentController.Frame	
	dispatcher 	= createUnoService("com.sun.star.frame.DispatchHelper")

	if o_sheets.getbyname("Einstellungen").isvisible = true then
		o_sheets.getbyname("Einstellungen").isvisible = false
	end if

	dim args(2) as new com.sun.star.beans.PropertyValue
	args(0).Name = "URL"
	args(0).Value = "file:///X:/ORDNER/" & year(now()) & "/" & format(now(),"yyyy-mm") & ".pdf"
	args(1).Name = "FilterName"
	args(1).Value = "calc_pdf_Export"
	args(2).Name = "Overwrite"
	args(2).Value = True

	dispatcher.executeDispatch(doc, ".uno:ExportDirectToPDF", "", 0, args())

	if o_sheets.getbyname("Einstellungen").isvisible = false then
		o_sheets.getbyname("Einstellungen").isvisible = true
	end if	
end sub
Ich verstecke die Tabelle "Einstellungen" drucke das ganze als PDF und danach wird die Tabelle wieder sichtbar gemacht. Funktioniert perfekt und spart arbeit. :)
Antworten