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
drucken zu PDF mit einem bestimmten Druckbereich per Makro
Moderator: Moderatoren
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
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
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!
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!