Faq/General/150/da

From The Document Foundation Wiki
< Faq‎ | General
Jump to: navigation, search
This page is a translated version of the page Faq/General/150 and the translation is 100% complete.

Other languages:
čeština • ‎dansk • ‎English • ‎français • ‎italiano

OBS

Vi behandler konvertering af .docx til .odt, men syntaksen og trinnene er de samme for andre formater, der understøttes af LibreOffice.


Kontekst

Under MS-Windows 10 kan vi bruge en kommando som soffice.exe --convert-to odt my_document.docx for at konvertere my_document.docx fra MS .docx-formatet til Open Document Format (odt). Funktionen --convert-to lader os specificere et sæt dokumenter ved at bruge den generelle joker-syntaks for filer. Der er for eksempel tilladt at bruge *.docx, når du har en bunke .docx-files til konvertering i den aktuelle mappe.


Problem

Men når den bruges i Windows Kommando-skal, fungerer det overhovedet ikke. Det ser ud til at alle konverteringerne begynder samtidig, og da to eksemplarer af LibreOffice (soffice.exe) ikke kan køre på samme tid, når de startes fra kommandolinjen, afsluttes processen aldrig. I bedste fald får du til sidst en eller to filer konverteret, men du vil i hvert fald manuelt skulle "myrde" en bunke LibreOffice-processer, der hænger i systemet (ved første blik: dobbelt så mange som filerne).


Løsning

Den enkle måde at takle dette på, er at bruge det nye Windows-undersystem til Linux-miljøet, som MS leverer til sin version 10 af Windows. Du skal måske installere den, men det er ligetil, hvis du følger dokumentationen [1].


Når du har gjort det, skal du tilgår en ret fin Bash-skal, der kører ovenpå det basale Windows-system, og funktionen "–convert-to" fungerer korrekt i synkron tilstand.


Den korte udgave

  1. Identificer stien til soffice.exe.
  2. cd til mapper med filer, der skal konverteres, efter at du har oprettet en mål-mappe.
  3. Giv denne kommando: <sti til soffice.exe> --convert-to odt --outdir <min_output_mappe> *.docx


Eksempel:

"/mnt/c/Program Files/LibreOffice 5/program/soffice.exe" --convert-to odt --outdir ./Converted_To_odt *.docx vil konvertere .docx-filerne i den aktuelle mappe til deres .odt-navnefælle i undermappen "./Converted_To_odt".


Hvorfor?

WSL (Windows Subsystem for Linux) opretter sit eget komplette filsystem. Derfor er syntaksen til at angive en fil-placering i mappe-træet forskellig fra Windows. Den første forskel er roden: Under Windows plejer det at være C:\, modsvaret i Bach-skallen er /mnt/c/. Dernæst er mappe-skilletegnet under Windows \, i Bash er det / (som i Unix). I øvrigt er reglerne de samme; Bash-skallen understøtter de samme tegnsæt som Windows' kommandoskal såvel som lange filnavne og filnavne med mellemrum, hvis de er afgrænset af dobbelte anførselstegn (").


Hvordan oprettes kommandoen?

Det letteste er at undersøge den genvej, du bruger hver gang du starter LibreOffice. Højreklik på den, dernæst på "Egenskaber", kopier så indholdet i feltet "Mål". I det eksempel vi gav, er det "C:\Program Files\LibreOffice 5\program\soffice.exe". Når du tilpasser syntaksen til Bash-kravene, som beskrevet ovenfor, får du: "/mnt/c/Program Files/LibreOffice 5/program/soffice.exe" Pas på, Unix er versalfølsom, det er Windows ikke.


Og så er du forresten færdig.


Konklusion

Bash-skallen oven på Windows er en let måde at konvertere en bunke filer fra et format til et andet med LibreOffices indbyggede kommando-linje funktion. Den arbejder stille.


Eller allerenklest: interaktivt

Det er endnu lettere at bruge den indbyggede LibreOffice Dokumentkonverterings-guide, som beskrevet her: https://help.libreoffice.org/latest/en-US/text/shared/autopi/01130000.html.


Du kan starte den ved at klikke på menuen Filer - Guider - Dokumentkonvertering...


En bruger har rapporteret, han var nødt til dele filerne op i bundter på 200 stk., fordi processen indimellem kørte galt.