Stapelkonvertierung von DOCX-Dateien in PDF mit der LibreOffice-Befehlszeile

Wenn Sie einen Ordner mit Word-Dateien haben, kann LibreOffice diese mit einem einzigen Befehl konvertieren. Erstellen Sie dazu im Ordner mit den DOCX-Dateien einen leeren Ausgabeordner und führen Sie den Befehl aus libreoffice --headless --convert-to pdf:writer_pdf_Export --outdir pdf *.docx. Dadurch wird der PDF-Exportfilter von Writer verwendet, die Originaldateien bleiben jedoch erhalten.

Verwenden Sie einen neuen Ausgabeordner, vergewissern Sie sich, dass LibreOffice installiert ist, und prüfen Sie die erstellten PDFs, anstatt ein erfolgreiches Beenden des Befehls als Beweis dafür zu werten, dass alle Seiten korrekt aussehen. Die Befehlszeile ist ein praktisches Batch-Tool; sie garantiert jedoch keine identische Seitennummerierung wie Microsoft Word und kann beschädigte Dokumente nicht reparieren.

Führen Sie eine einfache Stapelkonvertierung durch.

Öffnen Sie unter Linux ein Terminal im Verzeichnis, das die Dateien enthält. Erstellen Sie zuerst das Ausgabeverzeichnis:

mkdir -p pdf
libreoffice --headless --convert-to pdf:writer_pdf_Export --outdir pdf *.docx

--headlessDas Programm wird ausgeführt, ohne das normale Desktop-Fenster zu öffnen. --convert-toEs wählt PDF als Zielformat aus, writer_pdf_Exportbenennt den PDF-Exportfilter von LibreOffice Writer und --outdir pdfspeichert die Ergebnisse im pdfangegebenen Ordner. Die Shell erweitert *.docxdie entsprechenden Dateien, bevor LibreOffice startet. LibreOffice dokumentiert diese Konvertierungssyntax und den Filternamen in seiner Befehlszeilenparameterreferenz und der Liste der Dateikonvertierungsfilter .

Das Linux-Terminal zeigt einen LibreOffice-Batch-Befehl an, der DOCX-Dateien in PDF konvertiert und die resultierenden PDFs auflistet.
Beispielhafte Terminalausgabe nach dem Senden eines kleinen Stapels von DOCX-Dateien an LibreOffice mit dem Writer PDF-Exportfilter.

Wählen Sie das richtige Stapelmuster

Der Wildcard-Befehl eignet sich am besten, wenn sich alle DOCX-Dateien direkt in einem Ordner befinden. Unterordner werden nicht durchsucht. Unter Linux wird standardmäßig zwischen Groß- und Kleinschreibung unterschieden, sodass *.docxDateien mit der Endung .docx möglicherweise übersprungen werden .DOCX. Meldet die Shell, dass das Suchmuster nicht übereinstimmt, listen Sie die Dateien auf und überprüfen Sie deren Dateiendungen, bevor Sie den Befehl ändern.

Bei Dokumenten, die in Unterordnern verschachtelt sind, kann eine Schleife die Verzeichnisstruktur beibehalten und Namenskonflikte vermeiden, wenn zwei Ordner eine Datei mit demselben Namen enthalten. Legen Sie inputden Quellbaum und pdfeinen separaten Zielbaum fest:

input="$PWD/input"
output="$PWD/pdf"
profile="file:///tmp/lo-batch-profile"

find "$input" -type f -iname '*.docx' -print0 |
while IFS= read -r -d '' file; do
  rel="${file#"$input"/}"
  dest="$output/$(dirname "$rel")"
  mkdir -p "$dest"
  libreoffice --headless \
    -env:UserInstallation="$profile" \
    --convert-to pdf:writer_pdf_Export \
    --outdir "$dest" "$file"
done

-print0Die Suchabgleichung read -d ''verarbeitet Leerzeichen und die meisten Sonderzeichen in Dateinamen zuverlässig. Das separate Profil verhindert, dass dieser Stapelverarbeitungsauftrag mit einer LibreOffice-Desktop-Sitzung konkurriert, die dasselbe Benutzerprofil verwendet (siehe LibreOffice-Startreferenzdokumente) -env:UserInstallation. Verwenden Sie einen eindeutigen Profilpfad, wenn zwei Konvertierungsaufträge gleichzeitig ausgeführt werden sollen. Platzieren Sie den Ausgabebaum außerhalb des Eingabebaums, damit die Suche nicht in bereits vorhandene Ergebnisse hineinreicht.

Das Linux-Terminal zeigt eine Schleife an, die auf der Suche basiert und Dokumente aus verschachtelten Ordnern in die entsprechenden PDF-Ausgabeordner sendet.
Beispiel einer rekursiven Suchschleife, die PDFs in einen PDF-Unterordner neben jedem Quellordner schreibt, wodurch gleichnamige Dateien in verschiedenen Ordnern getrennt bleiben.

Wenn LibreOffice bereits geöffnet ist

Ein Befehl kann scheinbar abgeschlossen werden, ohne Dateien zu erzeugen, oder eine Verbindung zu einem bestehenden LibreOffice-Prozess herstellen. Eine laufende Desktop-Instanz kann das Standardbenutzerprofil enthalten. Schließen Sie LibreOffice und versuchen Sie es erneut. Bei unbeaufsichtigten Aufträgen -env:UserInstallationist die Option „isoliert“ im rekursiven Beispiel eine nützliche Sicherheitsmaßnahme. Weisen Sie jedem gleichzeitig laufenden Auftrag ein eigenes Profilverzeichnis zu und warten Sie, bis ein Auftrag abgeschlossen ist, bevor Sie dieses Verzeichnis wiederverwenden.

Wenn der Befehl besagt libreoffice: command not found, dass LibreOffice über die von Ihrem Betriebssystem unterstützte Paketquelle installiert werden soll, oder verwenden Sie den vollständigen Pfad der ausführbaren Datei. Unter Windows PowerShell kann ein einfacher, nicht rekursiver Batch-Befehl wie folgt geschrieben werden:

$src = (Resolve-Path .).Path
$out = Join-Path $src 'pdf'
New-Item -ItemType Directory -Force -Path $out | Out-Null
$soffice = "$env:ProgramFiles\LibreOffice\program\soffice.exe"
Get-ChildItem -File -Filter *.docx | ForEach-Object {
  & $soffice --headless --convert-to pdf:writer_pdf_Export --outdir $out $_.FullName
}

Passen Sie die Vorgehensweise an $soffice, falls LibreOffice an einem anderen Ort installiert ist. Führen Sie den Befehl im Quellordner aus und verwenden Sie einen neuen Ausgabeordner. PowerShell Get-ChildItem -Filedurchsucht standardmäßig nur diesen Ordner, es sei denn, eine rekursive Suche ist erforderlich. Rekursive Suchvorgänge benötigen eine Schleife, die für jeden Quellpfad einen entsprechenden Zielordner erstellt.

Was kann das Ergebnis beeinflussen?

Die PDF-Konvertierung erhält das Layout, das LibreOffice interpretieren kann. Word und LibreOffice nummerieren Dokumente jedoch nicht immer identisch. Fehlende Schriftarten, nicht unterstützte eingebettete Objekte, die Funktion „Änderungen nachverfolgen“, Felder oder komplexe Tabellen können zu Verschiebungen von Zeilenumbrüchen und Seitenzahlen führen. Um eine einheitliche Typografie zu gewährleisten, installieren Sie die benötigten Schriftarten vor der Konvertierung. Geschützte oder passwortverschlüsselte Dateien müssen möglicherweise mit Anmeldeinformationen geöffnet oder manuell bearbeitet werden. Eine beschädigte DOCX-Datei kann selbst dann fehlschlagen, wenn andere Dateien konvertiert werden.

Führen Sie den Batch-Prozess nicht wiederholt in einem Ordner mit wichtigen PDFs gleicher Namen aus. Verwenden Sie stattdessen ein leeres Zielverzeichnis oder sichern Sie die vorhandenen Ausgaben. Ist eine Datei besonders wichtig, öffnen Sie sie in LibreOffice Writer und prüfen Sie sie, bevor Sie sich auf die PDF-Datei verlassen. Falls die exakte Seitennummerierung von Microsoft Word vertraglich vorgeschrieben ist, ist LibreOffice möglicherweise nicht das richtige Programm zum Rendern von PDFs. Vergleichen Sie in diesem Fall ein repräsentatives Beispiel in der Anwendung, die das erforderliche Layout definiert.

Im Linux-Terminal wird angezeigt, dass LibreOffice vor dem PDF-Export ohne grafische Oberfläche mit einem separaten Benutzerinstallationsprofil ausgeführt wird.
Beispielbefehl unter Verwendung eines separaten LibreOffice-Benutzerprofils für eine unbeaufsichtigte Konvertierung.

Überprüfen Sie das Ergebnis, bevor Sie es weitergeben.

Vergleichen Sie zunächst die Anzahl der Quelldateien mit der Anzahl der PDFs. Unter Linux zählen diese Befehle die Dateien in einem flachen Ordner:

find . -maxdepth 1 -type f -iname '*.docx' | wc -l
find pdf -maxdepth 1 -type f -iname '*.pdf' | wc -l

Vergleichen Sie bei rekursiver Konvertierung die Anzahl der Dateien im gesamten Eingabe- und Ausgabeverzeichnis. Eine übereinstimmende Anzahl ist ein hilfreicher Hinweis, aber keine Qualitätsgarantie: Ein beschädigtes Dokument oder ein überschriebenes Duplikat muss möglicherweise noch überprüft werden. Prüfen Sie das Terminalprotokoll auf Fehler und vergewissern Sie sich, dass jeder erwartete Dateiname im Zielverzeichnis vorhanden ist.

Prüfen Sie repräsentative PDFs in einem PDF-Viewer. Achten Sie dabei auf die erste und letzte Seite, die Seitenzahl, die Ränder, Tabellen, Kopf- und Fußzeilen, Bilder und alle relevanten Seitenumbrüche. Falls pdfinfoinstalliert, pdfinfo pdf/Report.pdfliefert das Programm Metadaten wie Seitenzahl und Seitengröße; es bewertet jedoch nicht die visuelle Qualität. Konvertieren Sie die Dateien erst erneut, nachdem Sie ein konkretes Problem behoben haben, z. B. eine fehlende Schriftart installiert oder das Ausgabeverzeichnis geändert haben, und prüfen Sie die betroffenen PDFs anschließend erneut.

Das Linux-Terminal zeigt die Ausgabe von pdfinfo mit Seitenzahl, Seitengröße und Dateigröße für eine konvertierte PDF-Datei an.
Beispiel einer Überprüfungsansicht, die PDF-Metadaten wie Seitenzahl und Papierformat anzeigt.

Der Stapel ist abgeschlossen, wenn alle erwarteten PDF-Dateien vorhanden sind, sich fehlerfrei öffnen lassen und die relevanten Seiten das gewünschte Layout beibehalten. Bei großen Archiven sollten die originalen DOCX-Dateien und Konvertierungsprotokolle aufbewahrt werden, um einen einzelnen Fehler nachverfolgen und den Vorgang wiederholen zu können, ohne andere Ausgaben zu überschreiben.

Einen Kommentar hinterlassen

Erstellen ausfüllbarer PDFs aus Formularen in LibreOffice Writer

Erstellen ausfüllbarer PDFs aus Formularen in LibreOffice Writer

Fügen Sie in Writer nutzbare Textfelder, Kontrollkästchen und Dropdown-Menüs hinzu und exportieren Sie anschließend eine PDF-Datei, die die Empfänger ausfüllen und speichern können.

Mit LibreOffice PDFs die verwendeten Schriftarten beibehalten

Mit LibreOffice PDFs die verwendeten Schriftarten beibehalten

Beheben Sie fehlende oder ersetzte Schriftarten in LibreOffice Writer PDFs, wählen Sie das richtige Exportprofil und überprüfen Sie vor dem Teilen, welche Schriftarten eingebettet sind.

Stapelkonvertierung von DOCX-Dateien in PDF mit der LibreOffice-Befehlszeile

Stapelkonvertierung von DOCX-Dateien in PDF mit der LibreOffice-Befehlszeile

Konvertieren Sie einen Ordner mit Word-Dokumenten mithilfe von LibreOffice-Befehlen in PDF, handhaben Sie verschachtelte Ordner sicher und überprüfen Sie das Ergebnis vor der Weitergabe.

Sorgen Sie dafür, dass jedes neue Writer-Dokument Ihre Vorlage verwendet.

Sorgen Sie dafür, dass jedes neue Writer-Dokument Ihre Vorlage verwendet.

Legen Sie eine benutzerdefinierte LibreOffice Writer-Vorlage als Standard fest, damit neue Dokumente mit Ihren bevorzugten Stilen und Seitenlayouts geöffnet werden.

LibreOffice dazu bringen, Ihre Java-Laufzeitumgebung zu erkennen

LibreOffice dazu bringen, Ihre Java-Laufzeitumgebung zu erkennen

Installieren Sie eine kompatible Java-Laufzeitumgebung, aktivieren Sie diese in LibreOffice und beheben Sie das Problem einer leeren JRE-Liste, ohne dabei nicht damit zusammenhängende Einstellungen zu ändern.

LibreOffice im Headless-Modus in Docker für die PDF-Konvertierung ausführen

LibreOffice im Headless-Modus in Docker für die PDF-Konvertierung ausführen

Erstellen Sie einen kleinen LibreOffice-Container, konvertieren Sie Office-Dokumente ohne grafische Benutzeroberfläche und überprüfen Sie die PDF-Ausgabe bei gleichzeitiger Beschränkung des Zugriffs auf die Host-Datei.

LibreOffice Impress-Dateien verkleinern, ohne die Bilder zu verwischen

LibreOffice Impress-Dateien verkleinern, ohne die Bilder zu verwischen

Reduzieren Sie die Größe Ihrer LibreOffice-Präsentationsdateien, indem Sie eingebettete Fotos komprimieren, sinnvolle Bildeinstellungen wählen und die Qualität der Folien vor dem Teilen überprüfen.

Verhindern des Beschneidens von benutzerdefinierten Ausdrucken in LibreOffice

Verhindern des Beschneidens von benutzerdefinierten Ausdrucken in LibreOffice

Passen Sie die Seitenabmessungen von LibreOffice an Ihren Drucker an, überprüfen Sie die druckbaren Ränder und korrigieren Sie die Skalierung, bevor Sie ein Dokument in benutzerdefinierter Größe drucken.

Beschleunigen Sie Calc-Makros durch das Lesen und Schreiben von Daten in Stapeln

Beschleunigen Sie Calc-Makros durch das Lesen und Schreiben von Daten in Stapeln

Ersetzen Sie wiederholte Zellzugriffe durch das Lesen und Schreiben großer Bereiche, vergleichen Sie anschließend die Ergebnisse und schützen Sie Formeln in großen Calc-Arbeitsmappen.

Organisieren eines LibreOffice-Buches mit verknüpften Masterdokumenten

Organisieren eines LibreOffice-Buches mit verknüpften Masterdokumenten

Teilen Sie ein langes Manuskript in Kapitel auf, fügen Sie diese in Writer zusammen und achten Sie auf einheitliche Stile, Inhalte und Exportprüfungen.