Converteer DOCX-bestanden in batch naar PDF met LibreOffice CLI.

Als u een map met Word-bestanden hebt, kan LibreOffice deze in één keer converteren. Maak vanuit de map met de DOCX-bestanden een lege uitvoermap aan en voer het commando uit libreoffice --headless --convert-to pdf:writer_pdf_Export --outdir pdf *.docx. Dit maakt gebruik van het PDF-exportfilter van Writer en laat de originele bestanden intact.

Gebruik een nieuwe uitvoermap, controleer of LibreOffice is geïnstalleerd en controleer de resulterende PDF's in plaats van een succesvolle afsluiting van de opdracht als bewijs te beschouwen dat elke pagina er goed uitziet. De opdrachtregel is een praktisch batchprogramma; het garandeert geen identieke paginering als Microsoft Word en kan beschadigde documenten niet herstellen.

Voer een eenvoudige batchconversie uit.

Open in Linux een terminal in de map waarin de bestanden zich bevinden. Maak eerst de uitvoermap aan:

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

--headlessHet programma wordt uitgevoerd zonder het normale bureaubladvenster te openen. --convert-toHet selecteert PDF als bestemmingsformaat, writer_pdf_Exportgeeft het PDF-exportfilter van LibreOffice Writer een naam en --outdir pdfslaat de resultaten op in de pdfmap. De shell vult *.docxde overeenkomende bestanden aan voordat LibreOffice start. LibreOffice documenteert deze conversiesyntaxis en filternaam in de referentie voor opdrachtregelparameters en de lijst met bestandsconversiefilters .

In de Linux-terminal wordt een LibreOffice-batchopdracht weergegeven die DOCX-bestanden naar PDF converteert en de resulterende PDF's weergeeft.
Voorbeeld van terminaluitvoer nadat een kleine batch DOCX-bestanden naar LibreOffice is verzonden met het PDF-exportfilter van Writer.

Kies het juiste batchpatroon

Het gebruik van een wildcard werkt het beste wanneer alle DOCX-bestanden zich direct in één invoermap bevinden. Het zoekt niet in submappen. Op Linux is het patroon standaard hoofdlettergevoelig, waardoor *.docxbestanden die eindigen op .DOCX mogelijk worden overgeslagen .DOCX. Als de shell meldt dat het patroon niet overeenkomt, controleer dan de bestandsextensies voordat u de opdracht wijzigt.

Voor documenten die zich in submappen bevinden, kan een lus de mappenstructuur behouden en conflicten voorkomen wanneer twee mappen een bestand met dezelfde naam bevatten. Stel inputde bronstructuur in en pdfeen aparte doelstructuur:

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

-print0De matchingfunctie read -d ''verwerkt spaties en de meeste ongebruikelijke tekens in bestandsnamen op een veilige manier. Het aparte profiel voorkomt dat deze batchtaak concurreert met een LibreOffice-sessie op de desktop die hetzelfde gebruikersprofiel gebruikt; LibreOffice's opstartreferentiedocumenten -env:UserInstallation. Gebruik een uniek profielpad als er twee conversietaken tegelijkertijd kunnen worden uitgevoerd. Houd de uitvoerstructuur buiten de invoerstructuur, zodat de zoekopdracht niet in eerdere resultaten terechtkomt.

De Linux-terminal toont een op zoeken gebaseerde lus die documenten vanuit geneste mappen naar overeenkomende PDF-uitvoermappen stuurt.
Voorbeeld van een recursieve zoeklus die PDF's naar een submap met de naam 'pdf' schrijft naast elke bronmap, waardoor bestanden met dezelfde naam in verschillende mappen gescheiden blijven.

Wanneer LibreOffice al geopend is

Een opdracht kan ogenschijnlijk voltooid zijn zonder bestanden te produceren, of kan verbinding maken met een bestaand LibreOffice-proces. Een actieve desktop-instantie kan het standaardgebruikersprofiel bevatten. Sluit LibreOffice af en probeer het opnieuw; voor taken die niet automatisch worden uitgevoerd, -env:UserInstallationis de geïsoleerde optie in het recursieve voorbeeld een nuttige beveiliging. Geef elke gelijktijdige taak een eigen profielmap en wacht tot een taak is voltooid voordat u die map opnieuw gebruikt.

Als de opdracht aangeeft dat libreoffice: command not foundLibreOffice geïnstalleerd moet worden, installeer het dan via de ondersteunde pakketbronnen van uw besturingssysteem of gebruik het volledige pad naar het uitvoerbare bestand. In Windows PowerShell kan een eenvoudig, niet-recursief batchbestand als volgt worden geschreven:

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

Pas dit aan $sofficeals LibreOffice elders is geïnstalleerd. Voer de opdracht uit vanuit de bronmap en gebruik een nieuwe uitvoermap. PowerShell Get-ChildItem -Filedoorzoekt alleen die map, tenzij recursie is aangevraagd; recursieve taken vereisen een lus die voor elk bronpad een overeenkomstige bestemmingsmap aanmaakt.

Wat kan het resultaat beïnvloeden?

Bij het converteren naar PDF blijft de lay-out behouden die LibreOffice kan interpreteren, maar Word en LibreOffice pagineren documenten niet altijd identiek. Ontbrekende lettertypen, niet-ondersteunde ingesloten objecten, bijgehouden wijzigingen, velden of complexe tabellen kunnen leiden tot verschuivingen in regeleinden en paginanummers. Installeer de benodigde lettertypen voor een consistente typografie vóór de conversie. Beveiligde of met een wachtwoord versleutelde bestanden moeten mogelijk met de juiste inloggegevens worden geopend of handmatig worden verwerkt. Een beschadigd DOCX-bestand kan bovendien zelfstandig vastlopen, zelfs als andere bestanden wel correct worden geconverteerd.

Voer de batch niet herhaaldelijk uit naar een map die waardevolle PDF's met overeenkomende namen bevat. Gebruik een schone bestemming of maak eerst een back-up van de bestaande uitvoer. Als een bestand bijzonder belangrijk is, open het dan in LibreOffice Writer en controleer het voordat u op de PDF vertrouwt. Als exacte paginering volgens Microsoft Word een contractuele vereiste is, is LibreOffice mogelijk niet de juiste renderer; vergelijk een representatief voorbeeld in de toepassing die de vereiste lay-out definieert.

De Linux-terminal laat zien dat LibreOffice zonder grafische interface draait met een apart gebruikersinstallatieprofiel voordat er naar PDF wordt geëxporteerd.
Voorbeeldopdracht waarbij een apart LibreOffice-gebruikersprofiel wordt gebruikt voor een conversie die niet door de gebruiker wordt uitgevoerd.

Controleer de uitvoer voordat je deze deelt.

Vergelijk eerst het aantal bronbestanden met het aantal PDF's. Op Linux tellen deze commando's de bestanden in een platte map:

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

Bij recursieve conversie kunt u de aantallen in de volledige invoer- en uitvoerstructuur vergelijken. Een overeenkomend aantal is een nuttige controle, maar geen kwaliteitsgarantie: een beschadigd document of een overschreven duplicaat moet mogelijk nog steeds worden gecontroleerd. Controleer het terminallogboek op fouten en bevestig dat elke verwachte bestandsnaam in de bestemming voorkomt.

Bekijk representatieve PDF's in een PDF-viewer. Controleer de eerste en laatste pagina, het aantal pagina's, de marges, tabellen, kop- en voetteksten, afbeeldingen en eventuele pagina-einden die van belang zijn. Als pdfinfoPDF-viewer is geïnstalleerd, pdfinfo pdf/Report.pdfworden metadata zoals het aantal pagina's en de paginagrootte weergegeven; de visuele kwaliteit wordt echter niet beoordeeld. Converteer de PDF's pas opnieuw nadat een specifiek probleem is opgelost, zoals het installeren van een ontbrekend lettertype of het wijzigen van de uitvoermap, en bekijk de betreffende PDF's vervolgens opnieuw.

De Linux-terminal toont de uitvoer van pdfinfo met het aantal pagina's, de paginagrootte en de bestandsgrootte van een geconverteerd PDF-bestand.
Voorbeeld van een verificatieweergave met PDF-metadata zoals paginatelling en papierformaat.

De batch is klaar wanneer alle verwachte PDF-bestanden aanwezig zijn, zonder fouten openen en de relevante pagina's de beoogde lay-out behouden. Bewaar voor grote archieven de originele DOCX-bestanden en conversielogboeken, zodat een individuele fout kan worden opgespoord en de conversie opnieuw kan worden uitgevoerd zonder dat ongerelateerde uitvoer wordt vervangen.

Laat een reactie achter

Maak invulbare PDF's van formulieren in LibreOffice Writer.

Maak invulbare PDF's van formulieren in LibreOffice Writer.

Voeg bruikbare tekstvelden, selectievakjes en keuzelijsten toe in Writer en exporteer vervolgens een pdf-bestand dat de ontvangers kunnen invullen en opslaan.

Zorg ervoor dat LibreOffice PDF's de lettertypen behouden die u hebt gebruikt.

Zorg ervoor dat LibreOffice PDF's de lettertypen behouden die u hebt gebruikt.

Herstel ontbrekende of vervangen lettertypen in LibreOffice Writer-pdf's, kies het juiste exportprofiel en controleer welke lettertypen zijn ingesloten voordat u het bestand deelt.

Converteer DOCX-bestanden in batch naar PDF met LibreOffice CLI.

Converteer DOCX-bestanden in batch naar PDF met LibreOffice CLI.

Converteer een map met Word-documenten naar PDF met LibreOffice-opdrachten, ga veilig om met geneste mappen en controleer het resultaat voordat u het deelt.

Zorg ervoor dat elk nieuw document van een schrijver jouw sjabloon gebruikt.

Zorg ervoor dat elk nieuw document van een schrijver jouw sjabloon gebruikt.

Stel een aangepaste LibreOffice Writer-sjabloon in als standaardsjabloon, zodat nieuwe documenten worden geopend met uw voorkeursstijlen en pagina-indeling.

Zorg ervoor dat LibreOffice uw Java-runtime herkent.

Zorg ervoor dat LibreOffice uw Java-runtime herkent.

Installeer een compatibele Java-runtime, schakel deze in in LibreOffice en los het probleem op met een lege JRE-lijst zonder irrelevante instellingen te wijzigen.

LibreOffice zonder grafische interface uitvoeren in Docker voor PDF-conversie.

LibreOffice zonder grafische interface uitvoeren in Docker voor PDF-conversie.

Bouw een kleine LibreOffice-container, converteer kantoordocumenten zonder grafische gebruikersinterface en controleer de PDF-uitvoer terwijl de toegang tot hostbestanden wordt beperkt.

Verklein LibreOffice Impress-bestanden zonder afbeeldingen te vervagen.

Verklein LibreOffice Impress-bestanden zonder afbeeldingen te vervagen.

Verklein de omvang van LibreOffice-presentatiebestanden door ingesloten foto's te comprimeren, verstandige beeldinstellingen te kiezen en de diakwaliteit te controleren voordat u de presentatie deelt.

Voorkom dat afdrukken op maat worden bijgesneden in LibreOffice.

Voorkom dat afdrukken op maat worden bijgesneden in LibreOffice.

Zorg ervoor dat de paginaafmetingen van LibreOffice overeenkomen met die van uw printer, controleer de afdrukbare marges en corrigeer de schaal voordat u een document met een aangepast formaat afdrukt.

Versnel Calc-macro's door gegevens in batches te lezen en te schrijven.

Versnel Calc-macro's door gegevens in batches te lezen en te schrijven.

Vervang herhaalde celtoegang door bulklees- en schrijfbewerkingen op bereiken, test vervolgens het resultaat en bescherm formules in grote Calc-werkmappen.

Een LibreOffice-boek organiseren met gekoppelde hoofddocumenten

Een LibreOffice-boek organiseren met gekoppelde hoofddocumenten

Deel een lang manuscript op in hoofdstukken, voeg ze samen in Writer en zorg ervoor dat de stijlen, inhoud en exportcontroles consistent zijn.