Wenn Sie Dutzende von Word-Dokumenten haben, ist das Öffnen und Exportieren jedes einzelnen Dokuments in LibreOffice langsam und fehleranfällig. Ein Befehl wie [Befehl einfügen] soffice --convert-to pdfkann zwar mehrere Dokumente gleichzeitig konvertieren, aber häufige Probleme sind das Speichern der PDFs im falschen Ordner, der Verlust von Dateinamen mit Leerzeichen, das Anhängen des Auftrags an ein bereits geöffnetes Fenster oder die Erstellung von PDFs mit einem vom Word-Format abweichenden Layout. Der folgende Workflow beginnt mit einer Testdatei, führt dann einen sicheren Batch-Befehl aus und schließt mit der Überprüfung auf fehlende oder fehlerhafte Ausgaben ab.
Diese Beispiele verwenden die aktuelle LibreOffice-Befehlszeilensyntax, die in der LibreOffice-Hilfe 26.8 (Stand: 6. Oktober 2026) dokumentiert ist. Sie nutzen writer_pdf_Exportden PDF-Exportfilter für Writer-Dokumente. Die Konvertierung eignet sich für normale DOCX-Dateien, komplexe Layouts sollten jedoch überprüft werden, da LibreOffice und Microsoft Word manche Schriftarten und Seitenlayouts unterschiedlich darstellen können.
Bevor Sie einen Ordner konvertieren
Installieren Sie LibreOffice auf dem Computer, auf dem die Konvertierung durchgeführt werden soll. Verwenden Sie auf einem Server den Paketmanager oder das Installationsprogramm des jeweiligen Systems und vergewissern Sie sich, dass sofficeLibreOffice in der Befehlszeile verfügbar ist. Unter Windows befindet sich die ausführbare Datei üblicherweise im C:\Program Files\LibreOffice\program\soffice.exeVerzeichnis `/usr/libreoffice ...
Erstellen Sie zwei separate Ordner: einen für die DOCX-Quelldateien und einen für die resultierenden PDFs. Verwenden Sie dafür einen neuen oder leeren Ausgabeordner. Wenn Sie in einen Ordner konvertieren, der bereits PDFs mit denselben Dateinamen enthält, fragt LibreOffice möglicherweise nach dem Überschreiben oder kann die vorhandenen Dateien je nach Prozess und Umgebung nicht ersetzen. Durch die Trennung von Quell- und Ausgabeordner verhindern Sie außerdem eine versehentliche Konvertierungsschleife beim Durchsuchen eines Verzeichnisses durch Skripte.
Bei Dokumenten mit ungewöhnlichen Schriftarten sollten Sie vor der Konvertierung die vom ursprünglichen Autor verwendeten Schriftarten installieren. Fehlende Schriftarten können Zeilenumbrüche, Seitenzahlen, Tabellenbreiten und die Seitennummerierung verändern, selbst wenn die DOCX-Datei fehlerfrei geöffnet wird.
1. Testen Sie zuerst eine DOCX-Datei.
Konvertieren Sie ein repräsentatives Dokument, bevor Sie eine große Stapelverarbeitung durchführen. Ersetzen Sie in den folgenden Beispielen die Beispielpfade durch Ihre eigenen:
mkdir -p "/srv/docs/converted"
soffice --headless --convert-to pdf:writer_pdf_Export --outdir "/srv/docs/converted" "/srv/docs/incoming/Annual Report.docx"
--headlessFührt LibreOffice aus, ohne die grafische Benutzeroberfläche zu öffnen. --convert-toWählt das Ausgabeformat und optional einen Filter aus und --outdirgibt das Ziel an. Die Filtertabelle von LibreOffice listet die Optionen writer_pdf_Exportfür die PDF-Ausgabe aus Writer auf. Überprüfen Sie die Test-PDF-Datei, bevor Sie alles konvertieren: Achten Sie auf Seitenumbrüche, Kopf- und Fußzeilen, Tabellen, Bilder, Hyperlinks und Sonderzeichen.
Falls der Test keine PDF-Datei erzeugt, überprüfen Sie, ob der Quellpfad korrekt ist, die Datei lesbar ist und der Ausgabeordner beschreibbar ist. Stellen Sie außerdem sicher, dass LibreOffice für dasselbe Benutzerkonto installiert ist, unter dem der Befehl ausgeführt wird. Offizielle Referenzen: LibreOffice-Dateikonvertierungsfilter und LibreOffice-Befehlszeilenparameter .
2. Alle DOCX-Dateien mit einem einzigen Bash-Befehl konvertieren
Unter Linux oder macOS öffnen Sie Bash in einem Terminal und verwenden ein Dateinamensmuster. Stellen Sie sicher, sofficedass sich die Datei in Ihrem Verzeichnis befindet PATH; unter macOS müssen Sie die ausführbare Datei möglicherweise innerhalb des LibreOffice-Anwendungspakets aufrufen. Dieses Beispiel verarbeitet DOCX-Dateien direkt in einem Eingabeordner:
src="/srv/docs/incoming"
out="/srv/docs/converted"
mkdir -p "$out"
soffice --headless --convert-to pdf:writer_pdf_Export --outdir "$out" "$src"/*.docx
Bash expandiert *.docxvor dem Start von LibreOffice in separate Dateiargumente. Da jeder Pfadname als einzelnes Argument übergeben wird, bleiben Leerzeichen in Verzeichnis- und Dateinamen erhalten. Die Ausgabedatei (PDF) behält den Stamm des Quelldateinamens bei, sodass beispielsweise `/usr/libreoffice.pdf` zu `/usr/libreoffice.pdf` Annual Report.docxwird Annual Report.pdf. Der Befehl verarbeitet nur Dateien in diesem Ordner; Unterordner werden nicht durchsucht.
Verwenden Sie beim ersten Durchlauf ein leeres Zielverzeichnis. Bevor Sie den Befehl mit dem Platzhalter ausführen, prüfen Sie, ob der Eingabeordner die gewünschten Dateien enthält und ob genügend Speicherplatz für die PDFs vorhanden ist. In Bash kann ein nicht übereinstimmender Platzhalter wörtlich interpretiert werden, sofern Sie keine Shell-Optionen konfigurieren. Falls der Ordner leer sein könnte, prüfen Sie zunächst, ob mindestens eine DOCX-Datei vorhanden ist, oder verwenden Sie die Schleife pro Datei im nächsten Abschnitt.
3. Verwenden Sie eine Schleife für große Ordner oder eine explizite Fehlerbehandlung.
Eine Shell kann eine sehr lange Argumentliste ablehnen, wenn ein Ordner Tausende von Dokumenten enthält. Eine Schleife vermeidet es, jeden Dateinamen in einem einzigen Befehl an das Betriebssystem zu senden und verarbeitet Leerzeichen sicher, wenn die Pfade in Anführungszeichen stehen:
src="/srv/docs/incoming"
out="/srv/docs/converted"
mkdir -p "$out"
found=false
for file in "$src"/*.docx; do
[ -f "$file" ] || continue
found=true
soffice --headless --convert-to pdf:writer_pdf_Export --outdir "$out" "$file" || {
printf 'Conversion failed: %s\n' "$file" >&2
}
done
[ "$found" = true ] || { echo 'No DOCX files found.' >&2; exit 1; }
Die forSchleife verarbeitet Dateinamen mit Leerzeichen und übergibt nicht die gesamte Dateiliste als ein einziges großes Argument. Sie führt für jede Datei eine LibreOffice-Konvertierung durch, was länger dauern kann als die Verwendung eines einzelnen Platzhalterbefehls. Es werden nur Dateien direkt im Eingabeordner durchsucht. Um Unterordner einzubeziehen, verwenden Sie eine rekursive Dateisuche und behalten Sie jeden Eingabeordner im Ausgabeverzeichnis bei; andernfalls können zwei Dateien mit demselben Basisnamen zu kollidierenden PDF-Namen führen.
4. Konvertieren eines Ordners in Windows PowerShell
In PowerShell übergeben Sie jeden vollständigen Pfad als einzelnes Argument. Die folgende Schleife listet Dateien auf, für die LibreOffice einen Exit-Code ungleich null zurückgibt:
$soffice = 'C:\Program Files\LibreOffice\program\soffice.exe'
$inputDir = 'C:\Documents\incoming'
$outputDir = 'C:\Documents\converted'
New-Item -ItemType Directory -Force -Path $outputDir | Out-Null
$files = Get-ChildItem -LiteralPath $inputDir -Filter '*.docx' -File
if ($files.Count -eq 0) {
throw "No DOCX files found in $inputDir"
}
$failed = @()
foreach ($file in $files) {
& $soffice --headless --convert-to pdf:writer_pdf_Export --outdir $outputDir $file.FullName
if ($LASTEXITCODE -ne 0) {
$failed += $file.FullName
}
}
if ($failed.Count -gt 0) {
Write-Warning "Review failed conversions: $($failed -join '; ')"
}
Ändern Sie die Vorgehensweise $soffice, falls LibreOffice an einem anderen Ort installiert ist. Das PowerShell- Get-ChildItemBeispiel ist nicht rekursiv; fügen Sie es -Recursenur hinzu, wenn Sie auch Maßnahmen zur Vermeidung doppelter Ausgabedateinamen aus verschachtelten Ordnern geplant haben. Ein Exit-Status ungleich null ist eine hilfreiche Warnung, ersetzt aber nicht die Überprüfung, ob jede erwartete PDF-Datei vorhanden ist und sich korrekt öffnen lässt.
5. Profilkonflikte vermeiden und unerwartete Ereignisse überschreiben
LibreOffice benötigt Schreibzugriff auf sein Benutzerprofil. Wenn bereits ein interaktives LibreOffice-Fenster geöffnet ist, kann eine Befehlszeilenkonvertierung diese Instanz wiederverwenden oder auf ein gesperrtes Profil warten. Schließen Sie daher vor einem einmaligen Auftrag alle anderen LibreOffice-Fenster. Für Automatisierungen oder Aufträge, die separat ausgeführt werden müssen, weisen Sie der Konvertierung mithilfe der -env:UserInstallationBootstrap-Option ein eigenes Benutzerprofil zu. Die Option zur Auswahl eines benutzerdefinierten Profils ist in der LibreOffice-Dokumentation beschrieben.
soffice -env:UserInstallation=file:///tmp/lo-bulk-profile \
--headless --convert-to pdf:writer_pdf_Export \
--outdir "/srv/docs/converted" "/srv/docs/incoming/Annual Report.docx"
Verwenden Sie ein Profilverzeichnis, auf das das Konto, unter dem die Konvertierung ausgeführt wird, Schreibzugriff hat. Führen Sie nicht zwei LibreOffice-Prozesse gleichzeitig mit demselben Profil aus; verwenden Sie für jeden Prozess ein separates Profil. Führen Sie die Automatisierung seriell durch, bis Sie Ihre installierte Version und die Speicherkonfiguration getestet haben.
Führen Sie keine Konvertierung in einen Produktionsordner durch, ohne vorher festzulegen, wie mit vorhandenen PDFs verfahren werden soll. Sichern oder verschieben Sie vorherige Ergebnisse oder schreiben Sie in ein neues, mit einem Zeitstempel versehenes Verzeichnis. Ein Stapelexport sollte ein signiertes, genehmigtes oder zuvor geprüftes PDF nicht stillschweigend ersetzen.
6. Häufige Fehler bei der Stapelkonvertierung beheben
- Keine Ausgabedateien: Überprüfen Sie den Eingabe-Glob-Filter oder PowerShell-Filter, setzen Sie Pfade mit Leerzeichen in Anführungszeichen und stellen Sie sicher, dass das Ausgabeverzeichnis existiert und beschreibbar ist. Führen Sie den Einzeldateitest erneut aus, um ein Pfadproblem von einem Batch-Problem zu unterscheiden.
- Der Befehl wurde beendet, aber einige Dateien fehlen: Überprüfen Sie die Terminalausgabe und den Exit-Status und vergleichen Sie anschließend die Quellliste mit den erstellten PDFs. Beschädigte oder passwortgeschützte DOCX-Dateien müssen möglicherweise vor der Konvertierung repariert oder manuell geöffnet werden.
- Wenn LibreOffice sich aufhängt oder meldet, dass ein Profil gesperrt ist: Schließen Sie alle interaktiven LibreOffice-Prozesse oder versuchen Sie es mit einem separaten
-env:UserInstallationProfil erneut. Löschen Sie kein Profilverzeichnis, während LibreOffice es verwendet.
- Schriftarten oder Seitenumbruch können von Word abweichen: Installieren Sie die benötigten Schriftarten und vergleichen Sie eine repräsentative PDF-Datei mit dem Original. Bei Dokumenten, bei denen die exakte Word-Darstellung vertraglich wichtig ist, überprüfen Sie das Layout in der Autorensoftware oder einem zugelassenen Rendering-Dienst.
- Vorhandene PDFs bleiben unverändert: Konvertieren Sie sie in einen leeren Ausgabeordner und überprüfen Sie, ob der Befehl darauf verweist. Gehen Sie nicht davon aus, dass beim erneuten Ausführen eines Batches immer eine zuvor erstellte PDF-Datei überschrieben wird.
LibreOffice akzeptiert nach dem Filternamen auch PDF-Exportoptionen wie Seitenbereiche oder Einstellungen zur Barrierefreiheit. Diese Optionen sind nützlich, wenn alle Dateien das gleiche Exportverhalten aufweisen sollen. Testen Sie sie jedoch zunächst an einer Beispieldatei, bevor Sie sie auf mehrere Dateien anwenden. Weitere Informationen finden Sie in den offiziellen Befehlszeilenparametern für den PDF-Export .
7. Die fertige Charge überprüfen.
Beurteilen Sie den Erfolg nicht allein daran, ob der Befehl zur Eingabeaufforderung zurückgekehrt ist. Vergleichen Sie die Anzahl der Quell-DOCX-Dateien mit der Anzahl der PDFs im Ausgabeverzeichnis und überprüfen Sie anschließend einige PDFs aus verschiedenen Teilen des Stapels. Stellen Sie sicher, dass sich jede Datei öffnen lässt, die erwartete Seitenzahl aufweist und die letzte Seite, Tabellen, Bilder, Kopf- und Fußzeilen sowie Sonderzeichen wie Akzentbuchstaben oder Symbole enthält.
Unter Linux können Sie die nicht-rekursiven Eingabe- und Ausgabedateien mit folgendem Befehl zählen:
find "/srv/docs/incoming" -maxdepth 1 -type f -iname '*.docx' | wc -l
find "/srv/docs/converted" -maxdepth 1 -type f -iname '*.pdf' | wc -l
Die Überprüfung der Übereinstimmungen ist ein nützlicher erster Schritt, aber kein Beweis dafür, dass jede Datei korrekt ist. Bei unterschiedlichen Zählungen sollten die Dateinamen verglichen werden, um fehlende Konvertierungen zu identifizieren. Bei hohem Datenaufkommen oder regulierten Arbeitsabläufen sollten Quellpfad, Rückgabecode, Ausgabepfad und Validierungsergebnis protokolliert und die Quelldateien bis zur PDF-Prüfung aufbewahrt werden. Der Befehlszeilen-Workflow von LibreOffice erspart das wiederholte manuelle Exportieren, während ein separater Validierungsdurchlauf Layout- und Dateiprobleme aufdeckt, die die Automatisierung allein nicht zuverlässig erkennen kann.