Dacă aveți zeci de documente Word, deschiderea fiecăruia în LibreOffice și exportarea lor separată este lentă și ușor de întrerupt. O comandă precum soffice --convert-to pdfpoate converti un lot, dar printre problemele comune se numără trimiterea de PDF-uri în folderul greșit, pierderea numelor de fișiere cu spații, atașarea de către LibreOffice a lucrării la o fereastră deja deschisă sau producerea de PDF-uri al căror aspect diferă de cel din Word. Fluxul de lucru de mai jos începe cu un fișier de test, trece la o comandă lot sigură și se termină cu verificări pentru ieșiri lipsă sau incorecte.
Aceste exemple utilizează sintaxa curentă a liniei de comandă LibreOffice documentată în Ajutorul LibreOffice 26.8, verificat la 6 octombrie 2026. Acestea utilizează writer_pdf_Export, filtrul de export PDF pentru documentele Writer. Conversia este potrivită pentru fișierele DOCX obișnuite, dar machetele complexe necesită totuși revizuire, deoarece LibreOffice și Microsoft Word pot reda diferit anumite fonturi și machete de pagină.
Înainte de a converti un folder
Instalați LibreOffice pe computerul care va executa conversia. Pe un server, utilizați managerul de pachete sau programul de instalare pentru sistemul respectiv și confirmați că sofficeeste disponibil în shell-ul de comenzi. Pe Windows, executabilul se află de obicei sub C:\Program Files\LibreOffice\program\soffice.exe; calea de instalare poate diferi.
Pregătiți două foldere separate: unul pentru fișierele DOCX sursă și unul pentru fișierele PDF rezultate. Începeți cu un folder de ieșire nou sau gol. Dacă convertiți într-un folder care conține deja fișiere PDF cu aceleași nume de bază, LibreOffice poate solicita suprascrierea sau poate să nu le înlocuiască, în funcție de proces și mediu. Păstrarea separată a fișierelor sursă și de ieșire previne, de asemenea, o buclă de conversie accidentală atunci când scripturile scanează un director.
Pentru documentele cu fonturi neobișnuite, instalați aceleași fonturi folosite de autorul original înainte de conversie. Fonturile lipsă pot modifica sfârșiturile de rând, numărul de pagini, lățimea tabelului și paginarea chiar și atunci când fișierul DOCX se deschide fără erori.
1. Testează mai întâi un fișier DOCX
Convertiți un document reprezentativ înainte de a rula un lot mare. În exemplele de mai jos, înlocuiți căile de exemplu cu propriile dvs. căi:
mkdir -p "/srv/docs/converted"
soffice --headless --convert-to pdf:writer_pdf_Export --outdir "/srv/docs/converted" "/srv/docs/incoming/Annual Report.docx"
--headlessRulează LibreOffice fără a deschide interfața grafică. --convert-toselectează formatul de ieșire și filtrul opțional, în timp ce --outdirdenumește destinația. Tabelul de filtre al LibreOffice listează writer_pdf_Exportfișierele PDF pentru ieșirea din Writer. Verifică PDF-ul de test înainte de a converti totul: verifică sfârșiturile de pagină, anteturile și subsolurile, tabelele, imaginile, hyperlinkurile și caracterele speciale.
Dacă testul nu produce niciun PDF, confirmați că sursa este corectă, fișierul este lizibil și folderul de ieșire este inscripționabil. De asemenea, verificați dacă LibreOffice este instalat pentru același cont care execută comanda. Referințe oficiale: filtre de conversie a fișierelor LibreOffice și parametri din linia de comandă LibreOffice .
2. Conversia tuturor fișierelor DOCX într-o singură comandă Bash
Pe Linux sau macOS, deschideți Bash într-un terminal și utilizați un model de nume de fișier. Asigurați-vă sofficecă este pe PATH; pe macOS, este posibil să fie nevoie să apelați executabilul din pachetul aplicației LibreOffice. Acest exemplu gestionează fișierele DOCX direct într-un folder de intrare:
src="/srv/docs/incoming"
out="/srv/docs/converted"
mkdir -p "$out"
soffice --headless --convert-to pdf:writer_pdf_Export --outdir "$out" "$src"/*.docx
Bash se extinde *.docxîn argumente de fișier separate înainte de a porni LibreOffice. Deoarece fiecare nume de cale este transmis ca un singur argument, spațiile din numele directoarelor și numele fișierelor sunt păstrate. PDF-ul de ieșire păstrează rădăcina numelui fișierului sursă, deci Annual Report.docxdevine Annual Report.pdf. Comanda procesează fișierele doar din acel folder; nu caută în folderele secundare.
Folosește o destinație goală pentru prima rulare. Înainte de a rula comanda wildcard, verifică dacă folderul de intrare conține fișierele dorite și dacă ai suficient spațiu pe disc pentru PDF-uri. În Bash, un wildcard nepotrivit poate rămâne literal, cu excepția cazului în care configurezi opțiunile shell; dacă folderul este gol, testează mai întâi cel puțin un DOCX sau folosește bucla per fișier din secțiunea următoare.
3. Folosește o buclă pentru foldere mari sau pentru gestionarea explicită a erorilor
O interfață de shell poate respinge o listă de argumente foarte lungă atunci când un folder conține mii de documente. O buclă evită trimiterea fiecărui nume de fișier către sistemul de operare într-o singură comandă și gestionează spațiile în siguranță atunci când căile sunt între ghilimele:
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; }
Bucla între ghilimele forgestionează numele de fișiere cu spații și nu trimite întreaga listă de fișiere ca un singur argument mare. Rulează o singură conversie LibreOffice per fișier, deci poate dura mai mult decât o singură comandă wildcard. Scanează doar fișierele direct din folderul de intrare. Pentru a include subfoldere, utilizați o căutare recursivă de fișiere și păstrați fiecare folder de intrare în aspectul de ieșire; altfel, două fișiere cu același nume de bază pot produce nume PDF care se colizează.
4. Convertiți un folder în Windows PowerShell
În PowerShell, transmiteți fiecare cale completă ca argument unic. Următoarea buclă raportează fișierele pentru care LibreOffice returnează un cod de ieșire diferit de zero:
$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 '; ')"
}
Modificați $sofficedacă LibreOffice este instalat în altă locație. Exemplul PowerShell Get-ChildItemnu este recursiv; adăugați-l -Recursedoar dacă ați planificat și cum să evitați numele de ieșire duplicate din folderele imbricate. O stare de ieșire diferită de zero este un avertisment util, dar nu înlocuiește verificarea existenței fiecărui PDF așteptat și deschiderea corectă.
5. Preveniți conflictele de profil și suprascrieți surprizele
LibreOffice necesită acces de scriere la profilul său de utilizator. Dacă o fereastră interactivă LibreOffice rulează deja, o conversie din linia de comandă poate reutiliza acea instanță sau poate aștepta un profil blocat. Închideți celelalte ferestre LibreOffice înainte de o operațiune singulară. Pentru automatizare sau operațiuni care trebuie rulate separat, atribuiți conversiei un profil de utilizator dedicat cu -env:UserInstallationopțiunea bootstrap. LibreOffice documentează opțiunea de selectare a unui profil diferit de cel implicit:
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"
Folosește un director de profil în care contul care execută conversia poate scrie. Nu rula două procese LibreOffice simultane pe același profil; folosește un profil diferit pentru fiecare utilizator concurent. Păstrează numărul de serie al automatizării până când ai testat versiunea instalată și configurația de stocare.
Nu executați o conversie într-un folder de producție fără a decide cum ar trebui gestionate fișierele PDF existente. Faceți copii de rezervă sau mutați rezultatele anterioare sau scrieți într-un director nou cu marcaj temporal. Un export în lot nu ar trebui să înlocuiască în mod silențios un PDF semnat, aprobat sau revizuit anterior.
6. Depanarea erorilor comune de conversie în lot
- Niciun fișier de ieșire: verificați globul de intrare sau filtrul PowerShell, citați căile care conțin spații și confirmați că directorul de ieșire există și este inscriptibil. Rulați din nou testul cu un singur fișier pentru a separa o problemă de cale de o problemă batch.
- Comanda se termină, dar lipsesc unele fișiere: verificați ieșirea terminalului și starea de ieșire, apoi comparați lista de surse cu PDF-urile create. Un fișier DOCX deteriorat sau protejat prin parolă poate necesita reparare sau deschidere manuală înainte de conversie.
- LibreOffice se blochează sau raportează că un profil este blocat: închideți orice proces interactiv LibreOffice sau încercați din nou cu un
-env:UserInstallationprofil dedicat. Nu ștergeți un director de profil în timp ce LibreOffice îl utilizează.
- Fonturile sau paginarea diferă de cele din Word: instalați fonturile necesare și comparați un PDF reprezentativ cu originalul. Pentru documentele în care randarea exactă în Word este importantă din punct de vedere contractual, verificați aspectul în aplicația de creare sau la un serviciu de randare aprobat.
- PDF-urile existente rămân neschimbate: convertiți-le într-un folder de ieșire gol și confirmați că comanda indică spre acesta. Evitați să presupuneți că rerularea unui lot suprascrie întotdeauna un PDF anterior.
LibreOffice acceptă și opțiuni de export PDF după numele filtrului, cum ar fi intervale de pagini sau setări legate de accesibilitate. Aceste opțiuni sunt utile atunci când toate fișierele ar trebui să aibă același comportament de export, dar să le testați pe un eșantion înainte de a le aplica unui lot. Consultați parametrii oficiali din linia de comandă pentru exportul PDF .
7. Verificați lotul finit
Nu judecați succesul doar după ce comanda a returnat mesajul la prompt. Comparați numărul de fișiere DOCX sursă cu numărul de PDF-uri din folderul de ieșire, apoi inspectați câteva PDF-uri din diferite părți ale lotului. Confirmați că fiecare se deschide, are numărul de pagini așteptat și include pagina finală, tabele, imagini, anteturi, subsoluri și caractere precum litere accentuate sau simboluri.
Pe Linux, puteți număra fișierele de intrare și ieșire nerecursive cu:
find "/srv/docs/incoming" -maxdepth 1 -type f -iname '*.docx' | wc -l
find "/srv/docs/converted" -maxdepth 1 -type f -iname '*.pdf' | wc -l
Numărul de fișiere care corespunde este o primă verificare utilă, nu o dovadă că fiecare fișier este corect. Dacă numărătorul diferă, comparați numele fișierelor pentru a identifica conversiile lipsă. Pentru un flux de lucru cu volum mare sau reglementat, înregistrați fiecare cale sursă, cod de retur, cale de ieșire și rezultat al validării și păstrați fișierele sursă până când fișierele PDF au fost revizuite. Fluxul de lucru din linia de comandă al LibreOffice elimină exportul manual repetitiv, în timp ce o trecere separată de validare identifică problemele la nivel de aspect și de fișier pe care automatizarea nu le poate evalua în mod fiabil de una singură.