Seite 1 von 1

Re: Makro Pfd drucken

Verfasst: Mi, 01.03.2017 11:39
von Jörg
Hallo,
vielleicht hilft das:
Unter Format->Druckbereiche festlegen. Geht für jedes einzelne Tabellenblatt.

Re: Makro Pfd drucken

Verfasst: Mi, 01.03.2017 11:41
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

Re: Makro Pfd drucken

Verfasst: Do, 02.03.2017 08:25
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

Re: Makro Pfd drucken

Verfasst: Do, 02.03.2017 12:49
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, ...)

Re: Makro Pfd drucken

Verfasst: Fr, 03.03.2017 08:02
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