Makro Pfd drucken

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

Moderator: Moderatoren

Jörg
*****
Beiträge: 392
Registriert: Mo, 21.10.2013 12:05

Re: Makro Pfd drucken

Beitrag von Jörg »

Hallo,
vielleicht hilft das:
Unter Format->Druckbereiche festlegen. Geht für jedes einzelne Tabellenblatt.
Gruß Jörg

Win 10 Pro AOO 4.1.15
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Makro Pfd drucken

Beitrag von Karolus »

Hallo

Code: Alles auswählen

args1(3).Name = "SelectionOnly"
args1(3).Value = false
Ist das nicht ziemlich offensichtlich an der Stelle mal True statt false zu nehmen??

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Makro Pfd drucken

Beitrag von Stephan »

Tut mir leid, bin nicht so firm in der Sache. Hab ich grad mal ausprobiert. Es werden immer noch alle Blätter aus der Datei gedruckt....
Das ist deshalb so will sich "SelectionOnly" nicht auf die selektierten Tabellenblätter, sondern die selektierten Bereiche/Zelle in Tabellenblättern bezieht.

Der richtige Weg ist der Druckbereiche zu definieren, wie hier bereits im Thread genannt.

Ein anderer möglicher Weg sollte sein im Makro die Property-Value:

Code: Alles auswählen

Array("PageRange",0,"1,2",com.sun.star.beans.PropertyState.DIRECT_VALUE))
anzupassen. Ich weiß gerade nicht was dort stehen muss, Du musst das ausprobieren indem Du das PDF-Erzeugen als Makro aufzeichnest und dabei im Register "Allgemein" im Bereich "Bereich" die gewünschten Seiten angibst.


Gruß
Stephan
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Makro Pfd drucken

Beitrag von mikeleb »

Hallo,
das Problem hatte ich schon einmal. Um die aktuelle Auswahl als pdf zu exportieren sollte folgendes Makro reichen:

Code: Alles auswählen

sub Drucken_PDF
	'Zugriff auf Dokument
	oDoc=ThisComponent
	'Zugriff auf Auswahl
	oBereiche=oDoc.CurrentSelection
	'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("file:///d:/Test/"& Dateiname & ".pdf")
	'Typ pdf
	arg(1).Name = "FilterName"
	arg(1).Value = "calc_pdf_Export"
	'weitere Parameter als Array
	dim aFilterData(0) as new com.sun.star.beans.PropertyValue
	'hier: Auswahl
	aFilterData(0).Name = "Selection"
	aFilterData(0).Value = obereiche
	arg(2).Name = "FilterData"
	arg(2).Value = aFilterData()
	'Datei schreiben
	oDoc.storetoUrl(arg(0).value,arg())
end sub
Die Funktion ConvertToUrl() sichert die korrekte Url-Schreibweise des Dateinamens (im Falle von Umlauten, Leerzeichen, ...)
Gruß,
mikeleb
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: Makro Pfd drucken

Beitrag von mikeleb »

Hallo,
dazu muss vorher der Pfad der Datei bestimmt werden, z. B. so:

Code: Alles auswählen

sub Drucken_PDF
	'Zugriff auf Dokument
	oDoc=ThisComponent
	'Pfad ermitteln
	sUrl=oDoc.url
	slash=0
	for i=len(sUrl) to 1 step -1
		if mid(sUrl,i,1)="/" then 
			slash=i
			i=1
		end if
	next
	sPfad=left(sUrl,slash)
	'Zugriff auf Auswahl
	oBereiche=oDoc.CurrentSelection
	'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(sPfad & Dateiname & ".pdf")
	'Typ pdf
	arg(1).Name = "FilterName"
	arg(1).Value = "calc_pdf_Export"
	'weitere Parameter als Array
	dim aFilterData(0) as new com.sun.star.beans.PropertyValue
	'hier: Auswahl
	aFilterData(0).Name = "Selection"
	aFilterData(0).Value = obereiche
	arg(2).Name = "FilterData"
	arg(2).Value = aFilterData()
	'Datei schreiben
	oDoc.storetoUrl(arg(0).value,arg())
end sub
Gruß,
mikeleb
Antworten