Hallo,
ich möchte mit Hilfe von OpenOffice (2.0.2) und VBScript alle .odt Dateien in
einem Verzeichnis als .pdf Dateien exportieren. Das funktioniert auf einer
W2000 Maschine auch sehr gut, auf einem XP (SP2) Computer bricht das
Script nach einigen Dateien aber mit einer Fehlermeldung
Der Remoteservercomputer ist existiert nicht oder ist nicht verfügbar
ab.
Da ich neu in diesem Forum bin, möchte ich zunächst wissen, ob ich mit
dieser Frage hier 'on topic' bin.
Vielen Dank
ehvbs
PDF Export / VBScript
Moderator: Moderatoren
Hey ehvbs,
Gruss
Thomas
Na ja, mit VBScript (Was ist das überhaupt? VBA? Visual Basic?) wird dir hier wahrscheinlich kaum jemand helfen können. Aber - poste halt mal den code mit der exakten Stelle, wo der Fehler auftritt und der kmpletten Fehlermeldung. Vielleicht weiss ja jemand etwas?Da ich neu in diesem Forum bin, möchte ich zunächst wissen, ob ich mit
dieser Frage hier 'on topic' bin.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Toxitom,
vielen Dank für die Ermunterung. VBScript ist der 'kleine Bruder' von VB
und VBA (ein Basic-Dialekt, der von der Kommandozeile oder im IExplorer
verwendet werden kann).
Hier ist mein Code
Der Fehler tritt - nach etwa drei erfolgreich bearbeiteten Dateien - bei dem
Aufruf von "loadComponentFromURL" auf; die Fehlermeldung (sicher
von Windows) lautet:
Der Remoteservercomputer ist existiert nicht oder ist nicht verfügbar
Wenn ich die cbSleep*-Konstanten alle auf True setzte, zwischen den
Aktionen also ca 2 Sekunden warte, läuft das Script durch (mit ca 10
Dateien getestet).
Vielen Dank
ehvbs
vielen Dank für die Ermunterung. VBScript ist der 'kleine Bruder' von VB
und VBA (ein Basic-Dialekt, der von der Kommandozeile oder im IExplorer
verwendet werden kann).
Hier ist mein Code
Code: Alles auswählen
Const cbSleep0 = False
Const cbSleep1 = False
Const cbSleep2 = False
Dim oFS : Set oFS = CreateObject( "Scripting.FileSystemObject" )
Dim sDir : sDir = oFS.GetAbsolutePathName( ".\Output" )
Dim oSrv : Set oSrv = CreateObject( "com.sun.star.ServiceManager" )
Dim oDTop : Set oDTop = oSrv.createInstance( "com.sun.star.frame.Desktop" )
Dim oCRef : Set oCRef = oSrv.createInstance( "com.sun.star.reflection.CoreReflection" )
Dim oFile, sFSpec, oOODoc, aArgs()
For Each oFile In oFS.GetFolder( sDir ).Files
sFSpec = oFile.Path
If "odt" = LCase( oFS.GetExtensionName( sFSpec ) ) Then
WScript.Echo sFSpec, oFS.GetExtensionName( sFSpec )
Set oOODoc = oDTop.loadComponentFromURL( ConvertToUrl( sFSpec ) _
, "_blank" _
, 0 _
, aArgs _
)
If cbSleep0 Then WScript.Sleep 2000
sFSpec = oFS.GetParentFolderName( sFSpec ) + "\" + oFS.GetBaseName( sFSpec ) + ".pdf"
savePDF oSrv, oOODoc, sFSpec
If cbSleep1 Then WScript.Sleep 2000
oOODoc.Close True
If cbSleep2 Then WScript.Sleep 2000
End If
Next
Sub savePDF( oSrv, oOODoc, sFSpec )
Dim aProps( 1 ), oProp0, oProp1, vRet
Set oProp0 = oSrv.Bridge_GetStruct( "com.sun.star.beans.PropertyValue" )
oProp0.Name = "FilterName"
oProp0.Value = "writer_pdf_Export"
Set aProps( 0 ) = oProp0
Set oProp1 = oSrv.Bridge_GetStruct( "com.sun.star.beans.PropertyValue" )
oProp1.Name = "CompressMode"
oProp1.Value = 0
Set aProps( 1 ) = oProp1
vRet = oOODoc.storeToURL( ConvertToUrl( sFSpec ), aProps )
End Sub
Function ConvertToUrl( sFSpec )
ConvertToUrl = "file:///" + Replace( sFSpec, "\", "/" )
End Function
Aufruf von "loadComponentFromURL" auf; die Fehlermeldung (sicher
von Windows) lautet:
Der Remoteservercomputer ist existiert nicht oder ist nicht verfügbar
Wenn ich die cbSleep*-Konstanten alle auf True setzte, zwischen den
Aktionen also ca 2 Sekunden warte, läuft das Script durch (mit ca 10
Dateien getestet).
Vielen Dank
ehvbs