Konwersja wsadowa plików DOCX do PDF za pomocą interfejsu wiersza poleceń LibreOffice

Jeśli masz folder z plikami Word, LibreOffice może je przekonwertować jednym poleceniem. W folderze zawierającym pliki DOCX utwórz pusty folder wyjściowy i uruchom polecenie libreoffice --headless --convert-to pdf:writer_pdf_Export --outdir pdf *.docx. Wykorzysta to filtr eksportu PDF programu Writer, pozostawiając oryginały na miejscu.

Użyj nowego folderu wyjściowego, upewnij się, że LibreOffice jest zainstalowany i sprawdź wynikowe pliki PDF, zamiast traktować pomyślne zakończenie polecenia jako dowód, że każda strona wygląda poprawnie. Wiersz poleceń to praktyczne narzędzie wsadowe; nie gwarantuje ono identycznej stronicowania jak w programie Microsoft Word ani nie naprawia uszkodzonych dokumentów.

Uruchom prostą konwersję wsadową

W systemie Linux otwórz terminal w katalogu zawierającym pliki. Najpierw utwórz katalog wyjściowy:

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

--headlessDziała bez otwierania normalnego okna pulpitu. --convert-toWybiera PDF jako format docelowy; writer_pdf_Exportnadaje nazwę filtrowi eksportu PDF programu Writer pakietu LibreOffice; i --outdir pdfwysyła wyniki do pdffolderu. Powłoka rozszerza się *.docxdo odpowiednich plików przed uruchomieniem LibreOffice. LibreOffice dokumentuje tę składnię konwersji i nazwę filtra w dokumentacji parametrów wiersza poleceń i na liście filtrów konwersji plików .

W terminalu Linux pojawia się polecenie wsadowe LibreOffice konwertujące pliki DOCX do PDF i wyświetlające wynikowe pliki PDF.
Przykładowy wynik działania terminala po wysłaniu niewielkiej partii plików DOCX do LibreOffice za pomocą filtru eksportu plików PDF programu Writer.

Wybierz odpowiedni wzór partii

Polecenie wildcard sprawdza się najlepiej, gdy wszystkie pliki DOCX znajdują się bezpośrednio w jednym folderze wejściowym. Nie przeszukuje ono folderów podrzędnych. W systemie Linux wzorzec domyślnie rozróżnia wielkość liter, więc *.docxmoże pominąć pliki z końcówką .DOCX. Jeśli powłoka zgłosi, że wzorzec nie pasuje, przed zmianą polecenia należy wyświetlić listę plików i sprawdzić ich rozszerzenia.

W przypadku dokumentów zagnieżdżonych w podfolderach pętla może zachować strukturę katalogów i uniknąć kolizji, gdy dwa foldery zawierają plik o tej samej nazwie. Ustaw inputna drzewo źródłowe i pdfna oddzielne drzewo docelowe:

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

-print0a dopasowanie read -d ''bezpiecznie obsługuje spacje i większość nietypowych znaków w nazwach plików. Oddzielny profil zapobiega konkurowaniu tego zadania wsadowego z sesją LibreOffice na komputerze korzystającym z tego samego profilu użytkownika; dokumenty referencyjne dotyczące uruchamiania LibreOffice -env:UserInstallation. Użyj unikalnej ścieżki profilu, jeśli dwa zadania konwersji mogą być uruchomione jednocześnie. Zachowaj drzewo wyjściowe poza drzewem wejściowym, aby wyszukiwanie nie kierowało się do poprzednich wyników.

Terminal Linux pokazuje pętlę opartą na wyszukiwaniu, która wysyła dokumenty z zagnieżdżonych folderów do odpowiadających im folderów wyjściowych PDF.
Przykład rekurencyjnej pętli find zapisującej pliki PDF do podfolderu PDF obok każdego folderu źródłowego, co powoduje oddzielenie plików o tej samej nazwie w różnych folderach.

Kiedy LibreOffice jest już otwarty

Polecenie może pozornie zakończyć się bez utworzenia plików lub może połączyć się z istniejącym procesem LibreOffice. Działająca instancja na pulpicie może przechowywać domyślny profil użytkownika. Zamknij LibreOffice i spróbuj ponownie; w przypadku zadań nienadzorowanych, -env:UserInstallationopcja izolowana w przykładzie rekurencyjnym stanowi przydatne zabezpieczenie. Przypisz każdemu współbieżnemu zadaniu osobny katalog profilu i poczekaj na zakończenie jednego zadania przed ponownym użyciem tego katalogu.

Jeśli polecenie wskazuje „ libreoffice: command not found, zainstaluj LibreOffice za pomocą obsługiwanego źródła pakietu w systemie operacyjnym lub użyj pełnej ścieżki dostępu do pliku wykonywalnego. W programie Windows PowerShell prosty, nierekurencyjny plik wsadowy można zapisać w następujący sposób:

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

Dostosuj, $sofficejeśli LibreOffice jest zainstalowany gdzie indziej. Uruchom polecenie z folderu źródłowego i użyj nowego folderu wyjściowego. Program PowerShell Get-ChildItem -Fileprzeszukuje tylko ten folder, chyba że zostanie zażądana rekursja; zadania rekurencyjne wymagają pętli, która tworzy odpowiedni folder docelowy dla każdej ścieżki źródłowej.

Co może mieć wpływ na wynik?

Konwersja PDF zachowuje układ, który LibreOffice może interpretować, ale Word i LibreOffice nie zawsze dzielą dokumenty na strony identycznie. Brakujące czcionki, nieobsługiwane obiekty osadzone, śledzone zmiany, pola lub złożone tabele mogą powodować przesunięcia podziałów wierszy i liczby stron. Aby zapewnić spójną typografię, zainstaluj czcionki wymagane przez dokumenty przed konwersją. Pliki chronione lub zaszyfrowane hasłem mogą wymagać otwarcia z użyciem poświadczeń lub ręcznej obsługi, a uszkodzony plik DOCX może nie zostać automatycznie przekonwertowany, nawet jeśli inne pliki zostaną przekonwertowane.

Nie uruchamiaj wsadu wielokrotnie w folderze zawierającym cenne pliki PDF o tych samych nazwach. Użyj czystego miejsca docelowego lub najpierw utwórz kopię zapasową istniejących danych wyjściowych. Jeśli jeden plik jest szczególnie ważny, otwórz go w LibreOffice Writer i sprawdź, zanim zaczniesz korzystać z pliku PDF. Jeśli dokładna paginacja w programie Microsoft Word jest wymogiem umownym, LibreOffice może nie być odpowiednim rendererem; porównaj reprezentatywną próbkę w aplikacji, która definiuje wymagany układ.

W terminalu Linux widać, że LibreOffice działa bez interfejsu graficznego, z osobnym profilem UserInstallation przed eksportem do pliku PDF.
Przykładowe polecenie wykorzystujące oddzielny profil użytkownika LibreOffice do przeprowadzenia konwersji bez nadzoru.

Przed udostępnieniem sprawdź wynik

Najpierw porównaj liczbę plików źródłowych z liczbą plików PDF. W systemie Linux poniższe polecenia zliczają pliki w folderze płaskim:

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

W przypadku konwersji rekurencyjnej należy porównać liczbę w całym drzewie wejściowym i wyjściowym. Zgodna liczba to przydatne narzędzie, ale nie gwarancja jakości: uszkodzony dokument lub nadpisany duplikat mogą nadal wymagać weryfikacji. Sprawdź dziennik terminala pod kątem błędów i upewnij się, że każda oczekiwana nazwa pliku pojawia się w miejscu docelowym.

Przejrzyj reprezentatywne pliki PDF w przeglądarce PDF. Sprawdź pierwszą i ostatnią stronę, liczbę stron, marginesy, tabele, nagłówki i stopki, obrazy oraz wszelkie istotne podziały stron. Jeśli pdfinfojest zainstalowany, pdfinfo pdf/Report.pdfudostępnia metadane, takie jak liczba i rozmiar stron; nie ocenia wierności wizualnej. Przekonwertuj ponownie dopiero po rozwiązaniu konkretnego problemu, takiego jak zainstalowanie brakującej czcionki lub zmiana katalogu wyjściowego, a następnie ponownie przejrzyj pliki PDF, których dotyczy problem.

Terminal Linux wyświetla dane wyjściowe pdfinfo zawierające liczbę stron, rozmiar strony oraz rozmiar pliku dla przekonwertowanego pliku PDF.
Przykładowy widok weryfikacji pokazujący metadane pliku PDF, takie jak liczba stron i rozmiar papieru.

Partia jest gotowa, gdy wszystkie oczekiwane pliki PDF istnieją, otwierają się bez błędów, a istotne strony zachowują zamierzony układ. W przypadku długich archiwów należy zachować oryginalne pliki DOCX i dzienniki konwersji, aby można było śledzić pojedyncze błędy i ponownie je uruchamiać bez konieczności zastępowania niepowiązanych danych wyjściowych.

Zostaw komentarz

Zachowaj używane czcionki w plikach PDF LibreOffice

Zachowaj używane czcionki w plikach PDF LibreOffice

Napraw brakujące lub zastąpione czcionki w plikach PDF programu LibreOffice Writer, wybierz odpowiedni profil eksportu i sprawdź, które czcionki są osadzone przed udostępnieniem.

Konwersja wsadowa plików DOCX do PDF za pomocą interfejsu wiersza poleceń LibreOffice

Konwersja wsadowa plików DOCX do PDF za pomocą interfejsu wiersza poleceń LibreOffice

Konwertuj folder dokumentów Word do formatu PDF za pomocą poleceń LibreOffice, bezpiecznie zarządzaj zagnieżdżonymi folderami i weryfikuj dane wyjściowe przed udostępnieniem.

Spraw, aby każdy nowy dokument pisarza korzystał z Twojego szablonu

Spraw, aby każdy nowy dokument pisarza korzystał z Twojego szablonu

Ustaw niestandardowy szablon LibreOffice Writer jako domyślny, aby nowe dokumenty otwierały się z preferowanymi przez Ciebie stylami i układem strony.

Spraw, aby LibreOffice rozpoznawał środowisko uruchomieniowe Java

Spraw, aby LibreOffice rozpoznawał środowisko uruchomieniowe Java

Zainstaluj zgodne środowisko uruchomieniowe Java, włącz je w pakiecie LibreOffice i rozwiąż problemy z pustą listą środowisk JRE bez zmiany niepowiązanych ustawień.

Uruchom LibreOffice Headless w Dockerze w celu konwersji plików PDF

Uruchom LibreOffice Headless w Dockerze w celu konwersji plików PDF

Zbuduj mały kontener LibreOffice, konwertuj dokumenty biurowe bez interfejsu graficznego i weryfikuj dane wyjściowe PDF, ograniczając jednocześnie dostęp do plików hosta.

Zmniejsz pliki LibreOffice Impress bez rozmycia obrazów

Zmniejsz pliki LibreOffice Impress bez rozmycia obrazów

Zmniejsz rozmiar plików prezentacji LibreOffice, kompresując osadzone zdjęcia, wybierając rozsądne ustawienia obrazu i sprawdzając jakość slajdów przed udostępnieniem.

Zatrzymaj przycinanie wydruków o niestandardowych rozmiarach w LibreOffice

Zatrzymaj przycinanie wydruków o niestandardowych rozmiarach w LibreOffice

Dopasuj wymiary strony pakietu LibreOffice do drukarki, sprawdź marginesy do wydruku i popraw skalowanie przed wydrukowaniem dokumentu o niestandardowym rozmiarze.

Przyspiesz działanie makr Calc, odczytując i zapisując dane w partiach

Przyspiesz działanie makr Calc, odczytując i zapisując dane w partiach

Zastąp powtarzalny dostęp do komórek zbiorczym odczytem i zapisem zakresu, a następnie przeprowadź test porównawczy wyników i chroń formuły w dużych arkuszach kalkulacyjnych Calc.

Zorganizuj książkę LibreOffice z połączonymi dokumentami głównymi

Zorganizuj książkę LibreOffice z połączonymi dokumentami głównymi

Podziel długi rękopis na rozdziały, złóż je w programie Writer, a następnie zadbaj o spójność stylów, treści i kontroli eksportu.

Połącz LibreOffice Base z PostgreSQL za pomocą wbudowanego kreatora

Połącz LibreOffice Base z PostgreSQL za pomocą wbudowanego kreatora

Skorzystaj z bezpośredniej opcji PostgreSQL w programie Base, aby wprowadzić dane serwera, zalogować się, zapisać plik połączenia ODB i rozwiązać typowe problemy z dostępem.