drucken zu PDF mit einem bestimmten Druckbereich per Makro

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

sule1979
**
Beiträge: 28
Registriert: Mo, 13.03.2006 05:34

drucken zu PDF mit einem bestimmten Druckbereich per Makro

Beitrag von sule1979 »

Hallo,

ich habe das Forum schon komplett durchgestöbert und alles mögliche ausprobiert, doch ich komme mit meinem Problem einfach nicht weiter.

Ich habe ein Tabellendokument mit 2 Tabellen "Rechnung" und "Adressen". Per Maktro will ich erreichen, daß NUR aus der Tabelle "Rechnung" und dem Druckbereich "A1:F54", die Daten in eine PDF-Datei geschrieben werden.

Der Ausdruck in die PDF-Datei klappt hervorragend, doch es wird alles gedruckt (Rechnung und Adressen)!?

Wer kann mir helfen?

( OS: Windows 2000 Prof. + OO 2.0 )

Sub Rechnung_PDF

' Variablen deklarieren *****************************
Dim oDoc as Object
Dim oSheet as Object
Dim sUrl as String
Dim sFilterName as String
Dim exportEigenschaften(1) as New com.sun.star.beans.PropertyValue

' aktuelles Dokument holen
oDoc = ThisComponent

' Druckbereich **************************************

Dim aDruckbereiche(0)
dim osheet1 as object

oSheet1 = oDoc.getSheets().getByName("Rechnung")
oDruckBereich1 = oSheet1.getCellRangeByName("A1:F25").rangeAddress
aDruckbereiche(0) = oDruckBereich1
oSheet1.setPrintAreas(aDruckbereiche())

' Pfad für Export ************************************

sUrl1 = oDoc.url
n = 1
do while instr(n+1, sUrl1, "/") <> 0
n = instr(n+1, sUrl1,"/")
loop

oSheet = oDoc.sheets().getByName("Rechnung")
sUrl2 = oSheet.getCellRangeByName("F7").string

rem sUrl = ConvertToUrl( "c:/basictest.pdf" )
sUrl = left(sUrl1, n) & ("Rechnung_") & sUrl2 & (".pdf")


' Typ des Dokumentes feststellen
' und entsprechenden PDF-Exportfilter auswählen
If oDoc.supportsService( _
"com.sun.star.text.TextDocument" ) then
sFilterName = "writer_pdf_Export"
Elseif oDoc.supportsService( _
"com.sun.star.sheet.SpreadsheetDocument" ) then
sFilterName = "calc_pdf_Export"
Elseif oDoc.supportsService( _
"com.sun.star.presentation.PresentationDocument" ) then
sFilterName = "impress_pdf_Export"
Elseif oDoc.supportsService( _
"com.sun.star.draw.DrawDocument" ) then
sFilterName = "draw_pdf_Export"
Else
' nichte erkannte Datei:
' Fehleranzeige und Abbruch
MsgBox "Nicht unterstützes Dokument"
Exit Sub
End If

' Exporteigenschaften für PDF-Export
exportEigenschaften(0).Name = "FilterName"
exportEigenschaften(0).Value = sFilterName
exportEigenschaften(1).Name = "CompressMode"
exportEigenschaften(1).Value = 0

' als PDF exportieren ******************************
odoc.storeToUrl(sUrl,exportEigenschaften())

End Sub
euroandi
**
Beiträge: 30
Registriert: Sa, 11.03.2006 16:32

Beitrag von euroandi »

Hallo,
es gibt einen kostenlosen virtuellen PDF Drucker unter
http://download.freenet.de/archiv_p/pdf ... _7785.html
Dieser funktioniert auch bei Word und Excel.
Anstelle Deines normalen Druckers kannst du diesen PDF Drucker verwenden, der dann deine Seiten als PDF Datei ablegt.
Am besten funktionert es, wenn man das Macro so Aufzeichnet.
Datei
Drucken (PDF Creator)
Seiten 1-?
OK
Im PDF Creator muss man dann nur noch Speicher

Gruß
Andi
sule1979
**
Beiträge: 28
Registriert: Mo, 13.03.2006 05:34

Beitrag von sule1979 »

Vielen Dank für den Hinweis.

Ich kenn natürlich die Möglichkeit mit PDFCreator und benutzen diese für andere Anwendungen in welchen man nicht direkt eine PDF erstellen kann.

Ich ich wollte hier erreichen daß man ohne zusätzliche Software aus OO direkt eine PDF erstellen kann. Wie schon oben beschrieben funktioniert es soweit sehr gut. Hab jetzt alle Druckbereiche aus dem Datenblatt gelöscht und siehe da es funktioniert wie ich es mir vorgestellt habe. Also, wenn man per Maktro einen bestimmten Druckbereich drucken will, müssen die zuvor eingestellten Druckbereiche gelöscht werden. Das ist anscheinend die Lösung für mein Problem gewesen.

Falls ich da was falsches gesagt habe, bitte um Korrektur!
Antworten