1 Seite PDF und Name aus Zelle

Alles zur Programmierung im OpenOffice.org
Antworten
Donna
Beiträge: 6
Registriert: Fr 14. Sep 2018, 18:58

1 Seite PDF und Name aus Zelle

Beitrag von Donna » Fr 14. Sep 2018, 19:10

Hallo zusammen,

nachdem meine Suche im Forum und das Abändern eines aufgezeichneten Makros ohne Erfolg blieb hoffe ich nun, dass mir hier jemand helfen kann.

Ich habe eine OpenOfficeCalc Datei mit verschiedenen Registern. Ich möchte nun per Makro das aktuell ausgewählte Register (ein Druckbereich ist bereits festgelegt) als PDF in einem festen Ordner ablegen mit einem variablen Namen, welchee in eine festen Zelle des ausgewählten Registers steht.

Mit folgendem aufgezeichneten Makro habe ich habe 1 Seite PDF angelegt. Beim Ausführen wird aber die koplette Datei abgelegt. Den variablen Namen bekomme ich gar nicht hin. Das aufgeführte Makro legt alle in der Calc-Datei enthaltenen Regsiter als PDF mit festem Namen ab. Hat hier jemand Hilfe?

Wenn es wichtig ist, ich arbeite mit MAC.

VIele Grüße
Sonja


sub PDF_Mailen
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:///Users/sonja/Documents/Mailen/TEST.pdf"
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
args1(2).Name = "FilterData"
args1(2).Value = Array(Array("UseLosslessCompression",0,false,com.sun.star.beans.PropertyState.DIRECT_VALUE),Array

.... HIER FOLGT NUN EIN ENDLOS LANGER TEXT....VERMUTLICH LIEGT AUCH DA EIN PROBLEM DRIN

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


end sub

mikele
Beiträge: 495
Registriert: Sa 23. Jul 2011, 22:09

Re: 1 Seite PDF und Name aus Zelle

Beitrag von mikele » Sa 15. Sep 2018, 11:31

Hallo,
ob es beim Mac noch Besonderheiten gibt, kann ich nicht beurteilen.
Folgendes Makro sollte die Aufgabe erfüllen:

Code: Alles auswählen

Sub pdf_export
	'Zugriff auf das Dokument	
	odoc=ThisComponent
	'Zugriff auf die aktuelle Tabelle
	otab=odoc.CurrentController.ActiveSheet
	'Auslesen der Zelle: hier A1
	sName=otab.getCellRangeByName("A1").string
	if left(sName,4)<>".pdf" then sName=sName & ".pdf"
	'Auslesen des Druckbereichs
	obereiche = odoc.createInstance("com.sun.star.sheet.SheetCellRanges")
	for i=0 to ubound(otab.printareas) 
		obereiche.addRangeAddress(otab.printareas(i), 0)
	next
	Dim arg(2) as new com.sun.star.beans.PropertyValue
	arg(0).Name = "URL"	
	arg(0).Value = converttourl("file:///Users/sonja/Documents/Mailen/" & sName)
	arg(1).Name = "FilterName"
	arg(1).Value = "calc_pdf_Export"
	dim aFilterData(0) as new com.sun.star.beans.PropertyValue
	aFilterData(0).Name = "Selection"
	aFilterData(0).Value = obereiche
	arg(2).Name = "FilterData"
	arg(2).Value = aFilterData()
	msgbox arg(0).value
	'Exportieren als pdf
	odoc.storetoUrl(arg(0).value,arg())	
end sub		
Der Dateiname wird aus einer Zelle (hier A1) ausgelesen. Für den Fall, dass die Endung .pdf fehlt, wird sie ergänzt. Dann wird der Druckbereich des aktuellen Tabellenblattes als pdf abgespeichert.
Gruß,
mikele

Donna
Beiträge: 6
Registriert: Fr 14. Sep 2018, 18:58

Re: 1 Seite PDF und Name aus Zelle

Beitrag von Donna » Sa 15. Sep 2018, 12:38

Moin Mikele,

es klappt hervorragend. Genau das was ich gesucht habe.

Vielen Dank
Sonja

Antworten