von eBayer » Mo, 09.11.2009 19:17
so, ich habs doch früher geschafft.....
Eine kleine Batchdatei (habe ich hier als Zip-Datei angehängt) startet den Converter, dem mit der Batchdatei der Name des zu konvertierenden Dokuments übergeben wird. Wenn Du Dich noch ein wenig mit DOS und Batch-Parameter auskennst, kannst Du den Batch natürlich auch noch variabel halten. Im Moment ist der Name des Dokuments "MeinDokument.odt" fest in die Batchdatei eingetragen.
Die PDF-Datei bekommt automatisch den gleichen Namen wie das Ursprungsdokument, allerdings mit der Erweiterung ".PDF" und wird im gleichen Verzeichnis wie das Ursprungsdokument abgelegt.
Der eigentliche Converter ist das unten stehende Makro, welches Du auf dem entsprechenden Rechner unter
"Meine Makros Standard.Module1" abspeichern mußt. Das war schon alles!
Falls Du noch Fragen haben solltest, darfst Du Dich gerne nochmal melden.....
Über eine Erfolgsmeldung würde ich mich ebenfalls freuen.
Gruß eBayer
Sub ConvertToPDF()
If (Not GlobalScope.BasicLibraries.isLibraryLoaded("Tools")) Then
GlobalScope.BasicLibraries.LoadLibrary("Tools")
End If
oDokument=ThisComponent
'========= Namen des Dokuments ermitteln:
sUrl = oDokument.args(0).value
sUrl = left(sUrl,inStr(sUrl, ".odt")) + "pdf" ' für calc, impress oder draw ggf. hier anpassen!!!!
'========= Bericht als PDF unter TMP speichern:
DIM filter AS STRING
IF oDokument.supportsService( "com.sun.star.text.TextDocument" ) THEN
filter = "writer_pdf_Export"
ELSEIF oDokument.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) THEN
filter = "calc_pdf_Export"
ELSEIF oDokument.supportsService( "com.sun.star.presentation.PresentationDocument" ) THEN
filter = "impress_pdf_Export"
ELSEIF oDokument.supportsService( "com.sun.star.draw.DrawDocument" ) THEN
filter = "draw_pdf_Export"
Else
MsgBox "Dokument-Typ unbehandelt."
Exit Sub
End If
DIM Eigenschaften( 1 ) AS New com.sun.star.beans.PropertyValue
Eigenschaften( 0 ).Name = "FilterName"
Eigenschaften( 0 ).Value = filter
Eigenschaften( 1 ).Name = "CompressMode"
Eigenschaften( 1 ).Value = 0
oDokument.storeToUrl( sURL, Eigenschaften( ) )
oDokument.close(true)
End Sub
- Dateianhänge
-
- ConvertToPDF.zip
- (235 Bytes) 69-mal heruntergeladen
so, ich habs doch früher geschafft.....
Eine kleine Batchdatei (habe ich hier als Zip-Datei angehängt) startet den Converter, dem mit der Batchdatei der Name des zu konvertierenden Dokuments übergeben wird. Wenn Du Dich noch ein wenig mit DOS und Batch-Parameter auskennst, kannst Du den Batch natürlich auch noch variabel halten. Im Moment ist der Name des Dokuments "MeinDokument.odt" fest in die Batchdatei eingetragen.
Die PDF-Datei bekommt automatisch den gleichen Namen wie das Ursprungsdokument, allerdings mit der Erweiterung ".PDF" und wird im gleichen Verzeichnis wie das Ursprungsdokument abgelegt.
Der eigentliche Converter ist das unten stehende Makro, welches Du auf dem entsprechenden Rechner unter
"Meine Makros Standard.Module1" abspeichern mußt. Das war schon alles!
Falls Du noch Fragen haben solltest, darfst Du Dich gerne nochmal melden.....
Über eine Erfolgsmeldung würde ich mich ebenfalls freuen.
Gruß eBayer
Sub ConvertToPDF()
If (Not GlobalScope.BasicLibraries.isLibraryLoaded("Tools")) Then
GlobalScope.BasicLibraries.LoadLibrary("Tools")
End If
oDokument=ThisComponent
'========= Namen des Dokuments ermitteln:
sUrl = oDokument.args(0).value
sUrl = left(sUrl,inStr(sUrl, ".odt")) + "pdf" ' für calc, impress oder draw ggf. hier anpassen!!!!
'========= Bericht als PDF unter TMP speichern:
DIM filter AS STRING
IF oDokument.supportsService( "com.sun.star.text.TextDocument" ) THEN
filter = "writer_pdf_Export"
ELSEIF oDokument.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) THEN
filter = "calc_pdf_Export"
ELSEIF oDokument.supportsService( "com.sun.star.presentation.PresentationDocument" ) THEN
filter = "impress_pdf_Export"
ELSEIF oDokument.supportsService( "com.sun.star.draw.DrawDocument" ) THEN
filter = "draw_pdf_Export"
Else
MsgBox "Dokument-Typ unbehandelt."
Exit Sub
End If
DIM Eigenschaften( 1 ) AS New com.sun.star.beans.PropertyValue
Eigenschaften( 0 ).Name = "FilterName"
Eigenschaften( 0 ).Value = filter
Eigenschaften( 1 ).Name = "CompressMode"
Eigenschaften( 1 ).Value = 0
oDokument.storeToUrl( sURL, Eigenschaften( ) )
oDokument.close(true)
End Sub