.odt --> .doc konvertieren
gary
- software
0 Vinzenz Mai0 gary0 gary0 Vinzenz Mai0 gary0 Vinzenz Mai0 gary
0 Cervantes0 gary
0 Jens Holzkämper
Hallo zusammen,
Gibt es eine Möglichkeit, mehrere .odt Dateien (Open Office) in .doc Dateien (Word2000) zu konvertieren?
Einzeln, also im Open Office als odt öffnen unter speichern unter doc (2000) geht und funktioniert. D. h. Word 2000 kann damit umgehen. Nur sind es sehr viele Dokumente die ich gerne alle markieren würde und dann in .doc absaven.
Gibt es ein Tool, dass dies kann...
Viele Grüsse gary
Hallo Gary,
Einzeln, also im Open Office als odt öffnen unter speichern unter doc (2000) geht und funktioniert. D. h. Word 2000 kann damit umgehen. Nur sind es sehr viele Dokumente die ich gerne alle markieren würde und dann in .doc absaven.
Gibt es ein Tool, dass dies kann...
auch OpenOffice läßt sich automatisieren. Ein paar Zeilen Code sollten es tun.
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
Wo mach ich das? Meinst du über ein Makro (VBA) oder gibt es eine Klicki-Bunti- Möglichkeit...
Viele Grüsse gary
Hallo Vinzenz,
Ich habe jetzt alle Dokumente auf dem desctop abgelegt. Pfad:
C:\Dokumente und Einstellungen\Besitzer\Desktop\Convert
Der Filter von OpenOffice lautet im Dateitypfeld:
Microsoft Word 97/2000/XP(.doc)
Makro aufzeichnen bringt ja nichts, denn es ist ja nicht immer die selbe datei, die konvertiert werden soll...
Gruss gary
Hallo
Wo mach ich das? Meinst du über ein Makro
ja
(VBA)
Nein, doch nicht bei OpenOffice. Wahrscheinlich eher StarBASIC oder so.
oder gibt es eine Klicki-Bunti- Möglichkeit...
Bestimmt gibt es einen Makrorekorder, der Dir schon mal viel Arbeit abnimmt.
Bisher hatte ich noch keinen Bedarf, mich mit der Programmierung unter OpenOffice zu beschäftigen - im Gegensatz zur Programmierung der Microsoft-Suite.
Freundliche Grüße
Vinzenz
Hi Vinzenz,
Habe mal das Macro aufzeichnen gemacht, mit einer Beispieldatei. Jetzt muss ich wahrscheinlich die eine datei in *.* ändern, dass das Makro alle dateien im Ordner Konvert nimmt. Oder ist der Weg anders. Hier mal der Macrocode:
REM ***** BASIC *****
Sub Main
End Sub
sub transform
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:Open", "", 0, Array())
rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "URL"
args2(0).Value = "file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Desktop/Convert/ABS_Bew_ALDI.doc"
args2(1).Name = "FilterName"
args2(1).Value = "MS Word 97"
args2(2).Name = "SelectionOnly"
args2(2).Value = true
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args2())
end sub
Hallo,
das ganze sollte sich mit einer Schleife durch die Ausgangsdateien füttern lassen:
Ermittle die Liste der Ausgangsdateien
Für jede Datei der Liste
Bestimme den neuen Dateinamen (vermutlich nur geänderte Dateiendung)
Öffne die Datei
Speichere sie im neuen Format ab
Schliesse die Datei
Ende Für
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
Das ist der relevante teil des Makros:
rem ----------------------------------------------------------------------
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "URL"
args2(0).Value = "file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Desktop/Convert/ABS_Bew_ALDI.doc"
args2(1).Name = "FilterName"
args2(1).Value = "MS Word 97"
args2(2).Name = "SelectionOnly"
args2(2).Value = true
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args2())
Kann man das so wie früher machen:
rem ----------------------------------------------------------------------
rem --- Schleifenanfang ---
for x=1 to 90
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "URL"
args2(0).Value =
rem --- hier beliebige datei durch stern auswählen ---
"file:///C:/Dokumente%20und%20Einstellungen/Besitzer/Desktop/Convert/*.odt"
args2(1).Name = "FilterName"
args2(1).Value = "MS Word 97"
args2(2).Name = "SelectionOnly"
args2(2).Value = true
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args2())
rem --- Schleifenende ---
next x
Wie sehen die Chancen aus, dass das funktioniert?
Grüsse gary
Moin,
auch wenn man die Dateien nur einzeln konvertieren kann, vielleicht ist das ja was für Dich:
< http://media-convert.com/konvertieren/>
Cheers
Cervantes
Hallo Cervantes,
Danke für den Link. Lieb gemeint, aber einzeln geht ja bereits schon. OpenOffice öffnen, .odt-File öffnen, speichern unter .doc, fertig. Nur für Rund 90 Dateien ist das umständlich, und man verliert den Überblick welches man jetzt schon gemacht hat und welches nicht. Das sind Dokumente von einer Schwester, die teilweise auch sehr persönlich sind, und die sie jetzt auf ihrem neuen Laptop haben will. Dort läuft MS Small Business Office 2000. Und der kann eben nur .doc und kein .odt.
Trotzdem Danke
Viele Grüsse gary
Tach,
Gibt es eine Möglichkeit, mehrere .odt Dateien (Open Office) in .doc Dateien (Word2000) zu konvertieren?
http://www.xml.com/pub/a/2006/01/11/from-microsoft-to-openoffice.html ist bei mir der erste Treffer zu openoffice und batch und erklärt das Verfahren.
mfg
Woodfighter
Hi Woodfighter,
http://www.xml.com/pub/a/2006/01/11/from-microsoft-to-openoffice.html ist bei mir der erste Treffer zu openoffice und batch und erklärt das Verfahren.
Ganz schön harter Tobak *g*
Soweit ich das mit meinem Schulenglich verstanden habe, nimmt das dortige Makro pdf's und konvertiert diese in alle Formate (else,else,else Anweisung)
Für was braucht das Makro eine URL?. Es ist ne ganze menge Code dabei, den ich nicht brauche, und den ich grösstenteils nicht verstehe. Auch das XML irritiert mich. Ist das nicht ein Webstandart so wie HTML?
Der Code des Makros das ich unten postete bräuchte ja soweit ich vinzenz verstanden habe nur eine Schleife, in der ich die Anzahl der zu konvertierenden Files angeben müsste. Der Name kann gleich bleiben, nur der Dateityp von odt in doc ändern lassen.
Ich versuche mal den Code von deinem Link und meiner Aufzeichnung irgendwie unter einen Hut zu bringen... Aber wahrscheinlich werde ich die 90 Files am Ende doch von Hand umformatieren müssen... jaja, ein typischer Fall von PEBCAK (<P>roblem <E>xists <B>etween <C>hair <A>nd <K>eyboard)
Viele Grüsse und sorry, dass ich zu doof dafür bin *g*
gary
Tach,
Soweit ich das mit meinem Schulenglich verstanden habe, nimmt das dortige Makro pdf's und konvertiert diese in alle Formate (else,else,else Anweisung)
nein, es nimmt Dokumente, die OpenOffice öffnen kann und konvertiert sie nach pdf, doc oder odt.
Für was braucht das Makro eine URL?.
Openoffice arbeitet intern mit URLs.
Auch das XML irritiert mich. Ist das nicht ein Webstandart so wie HTML?
Nein, es ist ein Dokumentenstandard, zum Beispiel odt basiert auf XML.
Der Code des Makros das ich unten postete bräuchte ja soweit ich vinzenz verstanden habe nur eine Schleife, in der ich die Anzahl der zu konvertierenden Files angeben müsste. Der Name kann gleich bleiben, nur der Dateityp von odt in doc ändern lassen.
In der von mir geposteten Version wird die Schleife beim Aufruf durch das Betriebssystem erzeugt.
mfg
Woodfighter
Hi Woodfighter,
nein, es nimmt Dokumente, die OpenOffice öffnen kann und konvertiert sie nach pdf, doc oder odt.
Ok :-)
Openoffice arbeitet intern mit URLs.
Ok :-)
Nein, es ist ein Dokumentenstandard, zum Beispiel odt basiert auf XML.
Ach so is des :-)
In der von mir geposteten Version wird die Schleife beim Aufruf durch das Betriebssystem erzeugt.
Na dann wär das ja das was ich brauche :-)
Hier dein Makrocodevorschlag:
' Based on code from http://www.oooforum.org/forum/viewtopic.phtml?t=3772
' Save document as an Acrobat PDF file.
Sub SaveAsPDF( cFile )
cURL = ConvertToURL( cFile )
' Open the document. Just blindly assume that the document
' is of a type that OOo will correctly recognize and open
' without specifying an import filter.
oDoc = StarDesktop.loadComponentFromURL( cURL, "_blank", 0, _
Array(MakePropertyValue( "Hidden", True ),))
cFile = Left( cFile, Len( cFile ) - 4 ) + ".pdf"
cURL = ConvertToURL( cFile )
' Save the document using a filter.
oDoc.storeToURL( cURL, Array(_
MakePropertyValue( "FilterName", "writer_pdf_Export" ),)
oDoc.close( True )
End Sub
' Save document as a Microsoft Word file.
Sub SaveAsDoc( cFile )
' mostly a copy of SaveAsPDF
cURL = ConvertToURL( cFile )
oDoc = StarDesktop.loadComponentFromURL( cURL, "_blank", 0, (_
Array(MakePropertyValue( "Hidden", True ),))
cFile = Left( cFile, Len( cFile ) - 4 ) + ".doc"
cURL = ConvertToURL( cFile )
oDoc.storeToURL( cURL, Array(_
MakePropertyValue( "FilterName", "MS WinWord 6.0" ),)
oDoc.close( True )
End Sub
' Save document as an OpenOffice 2 file.
Sub SaveAsOOO( cFile )
' mostly a copy of SaveAsPDF. Save as an OpenOffice file.
cURL = ConvertToURL( cFile )
oDoc = StarDesktop.loadComponentFromURL( cURL, "_blank", 0, _
Array(MakePropertyValue( "Hidden", True ),))
' Set output file extension based on lower-case
' version of input extension.
Select Case LCase(Right(cFile,3))
Case "ppt" ' PowerPoint file.
cFileExt = "odp"
Case "doc" ' Word file.
cFileExt = "odt"
Case "xls" ' Excel file.
cFileExt = "ods"
Case Else
cFileExt = "xxx"
End Select
cFile = Left( cFile, Len( cFile ) - 3 ) + cFileExt
cURL = ConvertToURL( cFile )
oDoc.storeAsURL( cURL, Array() )
oDoc.close( True )
End Sub
Function MakePropertyValue( Optional cName As String, Optional uValue ) _
As com.sun.star.beans.PropertyValue
Dim oPropertyValue As New com.sun.star.beans.PropertyValue
If Not IsMissing( cName ) Then
oPropertyValue.Name = cName
EndIf
If Not IsMissing( uValue ) Then
oPropertyValue.Value = uValue
EndIf
MakePropertyValue() = oPropertyValue
End Function
Diese "case else" Anweisungen - muss ich da alle ausser "Case "doc"" löschen? Man der Macrokode ist echt kompliziert!
Gruss gary
Tach,
Diese "case else" Anweisungen - muss ich da alle ausser "Case "doc"" löschen? Man der Macrokode ist echt kompliziert!
so, jetzt mit etwas mehr Zeit als vorhin:
Du nimmst den kompletten Macrocode und brauchst nix daran verändern, in Extras -> Makros -> Makros verwalten -> Openoffice.org Basic fügst du ein neues Macro hinzu, im Beispiel wird es als Standard/MyConversions abgelegt. Aufgerufen wird das Makro dann über die Komandozeile, im Beispiel:
"C:\Program Files\OpenOffice.org 2.0\program\soffice" -invisible macro:///Standard.MyConversions.SaveAsDoc(c:\temp\sample.odt)
also vorne der Pfad zu OO, hinten der Pfad zur umzuwandelnden Datei, in der Mitte die aufzurufende Macrofunktion (du möchtest als doc abspeichern, also SaveAsDoc).
Um nun mehrere Dateien umzuwandeln schreibt man sich noch ein kurzes Script (als .cmd abspeichern), das das Makro pro Datei einmal aufruft, für Windows sieht das dann so aus:
set OooExe="C:\Program Files\OpenOffice.org 2.0\program\soffice"
for %a in (*) do %OOOExe% -invisible macro:///Standard.MyConversions.SaveAsOOO("%a")
Nix getestet, vorallem das batch-file ist aus dem Gedächtnis.
mfg
Woodfighter
Hi Woodfighter,
Hab das so ausprobiert, hat aber nicht funktioniert. Nun ich habe ihr gezeigt, wie es einzeln geht, und dann hat sie eben die 90 Dateien selber Konvertiert und zum USB Stick geschickt.
Resümee: Jetzt weiss ich wenigstens das es eine Möglichkeit gibt, so was zu automatisieren - im Prinzip - *g*
Danke für die Hilfe,Problem ist somit vom Tisch
Gruss gary