Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Das Textverarbeitungsprogramm

Moderator: Moderatoren

f__s12
Beiträge: 4
Registriert: So, 01.12.2013 19:14

Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Beitrag 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
Zuletzt geändert von f__s12 am So, 01.12.2013 19:50, insgesamt 1-mal geändert.
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Beitrag 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
f__s12
Beiträge: 4
Registriert: So, 01.12.2013 19:14

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Beitrag 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
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Beitrag 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
f__s12
Beiträge: 4
Registriert: So, 01.12.2013 19:14

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Beitrag 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
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Beitrag von F3K Total »

Moin,
f__s12 hat geschrieben:Es sind ca. 2.000 Dateien ...
und, sind die durchgelaufen?
Gruß R
f__s12
Beiträge: 4
Registriert: So, 01.12.2013 19:14

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Beitrag 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
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Beitrag 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
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Word 2010 + odf-Plugin Sprachumstellung auf Deutsch

Beitrag 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
Antworten