Seite 1 von 1

Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Verfasst: So, 01.12.2013 19:48
von f__s12
Ein freundliches Hallo,

ich muss Word (2010) docx-Dateien nach odt umspeichern (speichern unter / ODF Text Dokument (*.odt; *ott).
Dabei muss die Sprache festgelegt werden (deutsch).

Es sind ca. 2.000 Dateien, deshalb suche ich nach einer automatisierten Lösung.

Vorwegschicken muss ich, dass ich im odt-Umfeld nicht besonders bewandert bin.

Per VBA habe ich unter Word die Sprache des Dokuments auf deutsch umgestellt. Der Writer zeigt mir auch "Deutsch (Deutschand)" an. Jedoch muss es noch etwas anderes bei den Sprachoptionen geben. Bei dem Versuch die konvertierten Dateien weiter zu bearbeiten (mittels eines Redaktionssystem) wird mir der Import wegen der Spracheinstellung verhindert.

Erst wenn ich im Writer über "Extras / Sprache / für den gesamten Text / Deutsch (Deutschland)" die Sprache einstellen, funktioniert der Import in das Redaktionssystem.

Bräuchte hierzu einen Gedankenanstoß

oder - falls jemand dazu Zeit hat -

ein Makro, dass für alle odt-Dateien eines Verzeichnisses die Dateien öffnet, den Befehl "Extras / Sprache / für den gesamten Text / Deutsch (Deutschland)" durchführt und anschließend speichert und schließt.

Für jede Hilfe dankbar

Fabian

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Verfasst: So, 01.12.2013 23:13
von F3K Total
Hi,
habe was gestrickt:

Code: Alles auswählen

sub s_change_locale_DE_de
    dim afiles(1,0) as string
    dim array()
    MyDialog=createunoservice("com.sun.star.ui.dialogs.FolderPicker")
    myDialog.displaydirectory = "c:\"
    if mydialog.execute = 0 then
        exit sub
    endif
    sfolder = mydialog.directory 
    sURL = ConvertfromUrl(sfolder)+"\"
    NextFile = Dir(sURL, 0)
    afiles(0,0)= NextFile'Dateiname mit Extension
    afiles(1,0)= Left(NextFile,Len(NextFile)-5)'Dateiname ohne Extension .docx
    i = 1
    While NextFile  <> ""
        on error goto EXITER
        redim preserve afiles(1,i)
        NextFile  = Dir
        afiles(0,i)= NextFile'Dateiname mit Extension
        afiles(1,i)= Left(NextFile,Len(NextFile)-4)'Dateiname ohne Extension
        i=i+1
    Wend
    EXITER:
    Dim args(0) as New com.sun.star.beans.PropertyValue
    args(0).Name = "Hidden"
    args(0).Value = true
    for i = 0 to ubound (afiles(),2)
        surldocx = sfolder  &"/"& afiles(0,i)
        surlodt = sfolder  &"/"& afiles(1,i) & ".odt"
        odocument = StarDesktop.loadComponentFromURL(surldocx,"_blank", 0, args)
        oCharLocale = odocument.CharLocale
        with oCharLocale
           .Language = "de"
           .country = "DE"
        end with
        odocument.CharLocale = oCharLocale
        odocument.storetourl(surlodt,array())
        odocument.close -1
    next i
    msgbox "fertig, "+ (ubound (afiles(),2)+1) +" Dateien bearbeitet!"
end sub
Die Dateien werden im Hintergrund geöffnet, auf DE-de umgearbeitet und als .odt gespeichert.
Gruß R

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Verfasst: Mo, 02.12.2013 08:55
von f__s12
... ein ganz herzliches Dankeschön schon mal vorweg.

Wir arbeiten noch mit dem Writer 3.6 - aber das hat (fast) problemlos funktioniert

Auf die Idee, vom Writer aus das docx zu öffnen bin ich bisher nicht gekommen ( da ist halt eine MS-Denkblockade noch abzubauen).

Das odt komplett auf "DE" umzustellen scheint es jedoch nicht zu sein. Ich muss nach wie vor den Text markieren und dann über
Extras / Sprache / für den ganzen Text / Deutsch (Deutschland) auswählen.



Kannst du mir bitte noch die Befehle

- alles markieren
- Extras / Sprache / für den ganzen Text / Deutsch (Deutschland)

nachschieben. Die würde ich dann anstelle von

with oCharLocale
.Language = "de"
.country = "DE"
end with

im Makro ersetzen - hoffe mein Verständnis von starbasic ist ausreichend.


LG

Fabian

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Verfasst: Mo, 02.12.2013 10:03
von F3K Total
Hi,
versuche mal dieses:

Code: Alles auswählen

    sub s_change_locale_DE_de
        dim afiles(1,0) as string
        dim array()
        MyDialog=createunoservice("com.sun.star.ui.dialogs.FolderPicker")
        myDialog.displaydirectory = "c:\"
        if mydialog.execute = 0 then
            exit sub
        endif
        sfolder = mydialog.directory
        sURL = ConvertfromUrl(sfolder)+"\"
        NextFile = Dir(sURL, 0)
        afiles(0,0)= NextFile'Dateiname mit Extension
        afiles(1,0)= Left(NextFile,Len(NextFile)-5)'Dateiname ohne Extension .docx
        i = 1
        While NextFile  <> ""
            on error goto EXITER
            redim preserve afiles(1,i)
            NextFile  = Dir
            afiles(0,i)= NextFile'Dateiname mit Extension
            afiles(1,i)= Left(NextFile,Len(NextFile)-4)'Dateiname ohne Extension
            i=i+1
        Wend
        EXITER:
        Redim preserve afiles(1,ubound(afiles,2)-1)
        Dim args(0) as New com.sun.star.beans.PropertyValue
        args(0).Name = "Hidden"
        args(0).Value = true
        for i = 0 to ubound (afiles(),2) 
            surldocx = sfolder  &"/"& afiles(0,i)
            surlodt = sfolder  &"/"& afiles(1,i) & ".odt"
            odocument = StarDesktop.loadComponentFromURL(surldocx,"_blank", 0, args)
            oCharLocale = odocument.CharLocale
            with oCharLocale
               .Language = "de"
               .country = "DE"
            end with
            odocument.CharLocale = oCharLocale
            otext = odocument.text
            otextenumeration = otext.createenumeration
            while otextenumeration.hasmoreelements
                opara = otextenumeration.nextelement
                opara.charlocale = oCharLocale
            wend
            odocument.storetourl(surlodt,array())
            odocument.close -1
        next i
        msgbox "fertig, "+ (ubound (afiles(),2)+1) +" Dateien bearbeitet!"
    end sub
R

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Verfasst: Di, 03.12.2013 22:03
von f__s12
Hallo F3K Total,

Du bist mein Held, mein Retter in dunkelster Stunde!

Also wenn ich Dir mal in der M$-Umgebung mit VBA weiterhelfen kann, nur zu. Stehe tief in Deiner Schuld.

LG
Fabian

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Verfasst: Di, 03.12.2013 22:07
von F3K Total
Moin,
f__s12 hat geschrieben:Es sind ca. 2.000 Dateien ...
und, sind die durchgelaufen?
Gruß R

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Verfasst: So, 08.12.2013 08:03
von f__s12
Guten Morgen!

Zu Deiner Frage: nein, durchgelaufen ist der Code nicht ganz.

Kümmere mich gerade um Dateien mit Grafiken und Tabellen.

Dabei tritt ein Laufzeitfehler auf:

while otextenumeration.hasmoreelements
opara = otextenumeration.nextelement
opara.charlocale = oCharLocale <------------hier tritt der Fehler auf
wend


... könntest Du bitte noch einmal drüber schauen
lg
Fabian

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Verfasst: So, 08.12.2013 11:59
von F3K Total
Jo,
da scheint es wohl Textinhalte, wie Tabellen und Fotos zu geben, die keine Sprache haben, ersetze die Zeile

Code: Alles auswählen

opara.charlocale = oCharLocale
durch

Code: Alles auswählen

if opara.getPropertySetInfo.hasPropertyByName("CharLocale") then opara.charlocale = oCharLocale
Gruß R

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Verfasst: So, 08.12.2013 18:56
von F3K Total
Tach,
schwerpunktlastiges kenne ich nicht, schau mal oben im im Unterforum
OOo Basic und Java.
Das erste Thema heißt:
Informationen zur StarBasic-Programmierung
hier wird
StarBasic FAQ
immer gerne genommen. Für Dich wäre Punkt 8 die richtige Wahl
Ausserdem empfehle ich Dir dringend die Verwendung eines Inspection-Tools wie MRI oder Xray
Damit kannst Du alle OOo-Dokumente hinsichtlich ihres Aufbaues durchleuchten.
HTH Gruß R