gary: .odt --> .doc konvertieren

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

  1. 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

    1. Hallo Vinzenz,

      Wo mach ich das? Meinst du über ein Makro (VBA) oder gibt es eine Klicki-Bunti- Möglichkeit...

      Viele Grüsse gary

      1. 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

      2. 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

        1. 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

          1. 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

            1. 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

  2. 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

    1. 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

  3. 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

    1. 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

      1. 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

        1. 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

          1. 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

            1. 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