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