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