Jak konwertować pliki DOCX do PDF hurtowo za pomocą wiersza poleceń LibreOffice

Jeśli masz dziesiątki dokumentów Worda, otwieranie każdego z nich w LibreOffice i eksportowanie ich osobno jest powolne i łatwe do przerwania. Polecenie takie jak soffice --convert-to pdfmoże konwertować wsadowo, ale typowe problemy to wysyłanie plików PDF do niewłaściwego folderu, gubienie nazw plików ze spacjami, dołączanie zadania przez LibreOffice do już otwartego okna lub generowanie plików PDF o układzie innym niż w Wordzie. Poniższy przepływ pracy rozpoczyna się od jednego pliku testowego, przechodzi do bezpiecznego polecenia wsadowego i kończy się sprawdzeniem pod kątem brakujących lub błędnie sformatowanych danych wyjściowych.

W tych przykładach wykorzystano aktualną składnię wiersza poleceń LibreOffice, udokumentowaną w Pomocy LibreOffice 26.8, sprawdzoną 6 października 2026 r. Używają one writer_pdf_Exportfiltru eksportu PDF dla dokumentów Writer. Konwersja jest odpowiednia dla zwykłych plików DOCX, ale złożone układy nadal wymagają przeglądu, ponieważ LibreOffice i Microsoft Word mogą renderować niektóre czcionki i układy stron inaczej.

Przed konwersją folderu

Zainstaluj LibreOffice na komputerze, na którym będzie przeprowadzana konwersja. Na serwerze użyj menedżera pakietów lub instalatora dla tego systemu i sprawdź, czy sofficejest on dostępny w powłoce poleceń. W systemie Windows plik wykonywalny zazwyczaj znajduje się w katalogu C:\Program Files\LibreOffice\program\soffice.exe; ścieżka instalacji może się różnić.

Przygotuj dwa oddzielne foldery: jeden na pliki źródłowe DOCX i jeden na wynikowe pliki PDF. Zacznij od nowego lub pustego folderu wyjściowego. Jeśli konwertujesz do folderu, który już zawiera pliki PDF o tych samych nazwach bazowych, LibreOffice może poprosić o nadpisanie lub nie zastąpić ich, w zależności od procesu i środowiska. Oddzielenie pliku źródłowego od wyjściowego zapobiega również przypadkowej pętli konwersji podczas skanowania katalogu przez skrypty.

W przypadku dokumentów z nietypowymi krojami pisma, przed konwersją zainstaluj te same czcionki, których używał autor oryginału. Brakujące czcionki mogą zmienić podziały wierszy, liczbę stron, szerokość tabel i numerację stron, nawet jeśli plik DOCX otwiera się bez błędu.

1. Najpierw przetestuj jeden plik DOCX

Przekonwertuj przykładowy dokument przed uruchomieniem dużej partii. W poniższych przykładach zastąp przykładowe ścieżki własnymi:

mkdir -p "/srv/docs/converted"
soffice --headless --convert-to pdf:writer_pdf_Export --outdir "/srv/docs/converted" "/srv/docs/incoming/Annual Report.docx"

--headlessUruchamia LibreOffice bez otwierania interfejsu graficznego. --convert-toWybiera format wyjściowy i opcjonalny filtr, a jednocześnie --outdirpodaje nazwę miejsca docelowego. Tabela filtrów LibreOffice zawiera listę plików writer_pdf_ExportPDF dla pliku wyjściowego z programu Writer. Przed konwersją sprawdź testowy plik PDF: sprawdź podziały stron, nagłówki i stopki, tabele, obrazy, hiperłącza i znaki specjalne.

Jeśli test nie wygeneruje pliku PDF, sprawdź, czy ścieżka źródłowa jest poprawna, plik jest czytelny, a folder wyjściowy jest zapisywalny. Sprawdź również, czy LibreOffice jest zainstalowany na tym samym koncie, na którym uruchomiono polecenie. Oficjalne źródła: filtry konwersji plików LibreOffice i parametry wiersza poleceń LibreOffice .

2. Konwertuj wszystkie pliki DOCX jednym poleceniem Bash

W systemie Linux lub macOS otwórz Bash w terminalu i użyj wzorca nazwy pliku. Upewnij się, sofficeże jest on włączony PATH; w systemie macOS może być konieczne wywołanie pliku wykonywalnego w pakiecie aplikacji LibreOffice. Ten przykład obsługuje pliki DOCX bezpośrednio w jednym folderze wejściowym:

src="/srv/docs/incoming"
out="/srv/docs/converted"

mkdir -p "$out"
soffice --headless --convert-to pdf:writer_pdf_Export --outdir "$out" "$src"/*.docx

Bash rozwija się *.docxdo osobnych argumentów pliku przed uruchomieniem LibreOffice. Ponieważ każda ścieżka jest przekazywana jako jeden argument, spacje w nazwach katalogów i plikach są zachowywane. Wyjściowy plik PDF zachowuje rdzeń nazwy pliku źródłowego, więc Annual Report.docxstaje się Annual Report.pdf. Polecenie przetwarza tylko pliki w tym folderze; nie przeszukuje folderów podrzędnych.

Użyj pustego miejsca docelowego przy pierwszym uruchomieniu. Zanim uruchomisz polecenie z symbolem wieloznacznym, sprawdź, czy folder wejściowy zawiera odpowiednie pliki i czy masz wystarczająco dużo miejsca na dysku na pliki PDF. W Bash niedopasowany symbol wieloznaczny może pozostać bez zmian, chyba że skonfigurujesz opcje powłoki. Jeśli folder może być pusty, najpierw przetestuj go pod kątem co najmniej jednego pliku DOCX lub użyj pętli dla każdego pliku w następnej sekcji.

3. Użyj pętli w przypadku dużych folderów lub jawnej obsługi błędów

Powłoka może odrzucić bardzo długą listę argumentów, gdy folder zawiera tysiące dokumentów. Pętla pozwala uniknąć wysyłania wszystkich nazw plików do systemu operacyjnego w jednym poleceniu i bezpiecznie obsługuje spacje, gdy ścieżki są cytowane:

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

Pętla w cudzysłowie forobsługuje nazwy plików ze spacjami i nie wysyła całej listy plików jako jednego dużego argumentu. Wykonuje jedną konwersję LibreOffice na plik, więc może to zająć więcej czasu niż pojedyncze polecenie z symbolem wieloznacznym. Skanuje tylko pliki znajdujące się bezpośrednio w folderze wejściowym. Aby uwzględnić podfoldery, należy użyć rekurencyjnego wyszukiwania plików i zachować każdy folder wejściowy w układzie wyjściowym; w przeciwnym razie dwa pliki o tej samej nazwie bazowej mogą powodować kolidujące nazwy plików PDF.

4. Konwertuj folder w programie Windows PowerShell

W programie PowerShell przekaż każdą pełną ścieżkę jako pojedynczy argument. Poniższa pętla raportuje pliki, dla których LibreOffice zwraca kod wyjścia różny od zera:

$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 '; ')"
}

Zmień, $sofficejeśli LibreOffice jest zainstalowany w innej lokalizacji. Przykład programu PowerShell Get-ChildItemnie jest rekurencyjny; dodaj go -Recursetylko wtedy, gdy zaplanowałeś również, jak uniknąć duplikowania nazw plików wyjściowych z zagnieżdżonych folderów. Niezerowy kod wyjścia jest przydatnym ostrzeżeniem, ale nie zastępuje sprawdzenia, czy każdy oczekiwany plik PDF istnieje i otwiera się poprawnie.

5. Zapobiegaj konfliktom w profilach i unikaj niespodzianek

LibreOffice potrzebuje dostępu do zapisu swojego profilu użytkownika. Jeśli interaktywne okno LibreOffice jest już uruchomione, konwersja z poziomu wiersza poleceń może ponownie wykorzystać tę instancję lub poczekać na zablokowany profil. Zamknij inne okna LibreOffice przed wykonaniem jednorazowego zadania. W przypadku automatyzacji lub zadań, które muszą być uruchamiane oddzielnie, przypisz konwersji dedykowany profil użytkownika z -env:UserInstallationopcją Bootstrap. LibreOffice dokumentuje opcję wyboru profilu innego niż domyślny:

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"

Użyj katalogu profilu z uprawnieniami do zapisu dla konta uruchamiającego konwersję. Nie uruchamiaj dwóch procesów LibreOffice jednocześnie dla tego samego profilu; użyj innego profilu dla każdego współbieżnego procesu roboczego. Zachowaj numer seryjny automatyzacji do momentu przetestowania zainstalowanej wersji i konfiguracji pamięci masowej.

Nie uruchamiaj konwersji do folderu produkcyjnego bez uprzedniego ustalenia sposobu postępowania z istniejącymi plikami PDF. Utwórz kopię zapasową lub przenieś wcześniejsze wyniki albo zapisz je w nowym katalogu ze znacznikiem czasu. Eksport wsadowy nie powinien automatycznie zastępować podpisanego, zatwierdzonego lub wcześniej sprawdzonego pliku PDF.

6. Rozwiązywanie typowych problemów z konwersją wsadową

  • Brak plików wyjściowych: sprawdź glob wejściowy lub filtr programu PowerShell, wpisz w cudzysłów ścieżki zawierające spacje i upewnij się, że katalog wyjściowy istnieje i jest zapisywalny. Uruchom ponownie test pojedynczego pliku, aby oddzielić problem ze ścieżką od problemu wsadowego.
  • Polecenie kończy działanie, ale brakuje niektórych plików: sprawdź dane wyjściowe terminala i status wyjścia, a następnie porównaj listę źródłową z utworzonymi plikami PDF. Uszkodzony lub zabezpieczony hasłem plik DOCX może wymagać naprawy lub ręcznego otwarcia przed konwersją.
  • LibreOffice zawiesza się lub zgłasza, że ​​profil jest zablokowany: zamknij wszystkie interaktywne procesy LibreOffice lub spróbuj ponownie z dedykowanym -env:UserInstallationprofilem. Nie usuwaj katalogu profilu, gdy LibreOffice go używa.
  • Czcionki lub paginacja różnią się od formatu Word: zainstaluj wymagane czcionki i porównaj reprezentatywny plik PDF z oryginałem. W przypadku dokumentów, dla których dokładne odwzorowanie w formacie Word jest wymagane ze względów umownych, sprawdź układ w aplikacji do tworzenia lub w autoryzowanej usłudze renderowania.
  • Istniejące pliki PDF pozostają niezmienione: przekonwertuj je do pustego folderu wyjściowego i sprawdź, czy polecenie na niego wskazuje. Nie zakładaj, że ponowne uruchomienie wsadu zawsze nadpisuje wcześniejszy plik PDF.

LibreOffice akceptuje również opcje eksportu PDF po nazwie filtra, takie jak zakresy stron lub ustawienia związane z dostępnością. Opcje te są przydatne, gdy wszystkie pliki powinny mieć takie samo zachowanie eksportu, ale przed zastosowaniem ich do partii należy je przetestować na próbce. Zobacz oficjalne parametry wiersza poleceń eksportu PDF .

7. Sprawdź gotową partię

Nie oceniaj sukcesu tylko na podstawie tego, czy polecenie powróciło do wiersza poleceń. Porównaj liczbę źródłowych plików DOCX z liczbą plików PDF w folderze wyjściowym, a następnie sprawdź kilka plików PDF z różnych części pakietu. Upewnij się, że każdy z nich otwiera się, ma oczekiwaną liczbę stron i zawiera stronę końcową, tabele, obrazy, nagłówki, stopki oraz znaki, takie jak litery akcentowane lub symbole.

W systemie Linux pliki wejściowe i wyjściowe nierekurencyjne można policzyć następująco:

find "/srv/docs/incoming" -maxdepth 1 -type f -iname '*.docx' | wc -l
find "/srv/docs/converted" -maxdepth 1 -type f -iname '*.pdf' | wc -l

Zgodność liczników to użyteczna wstępna kontrola, a nie dowód na poprawność każdego pliku. Jeśli liczniki się różnią, porównaj nazwy plików, aby zidentyfikować brakujące konwersje. W przypadku przepływu pracy o dużej objętości lub regulowanego, rejestruj każdą ścieżkę źródłową, kod powrotu, ścieżkę wyjściową i wynik walidacji oraz przechowuj pliki źródłowe do momentu sprawdzenia plików PDF. Przepływ pracy w LibreOffice z poziomu wiersza poleceń eliminuje konieczność powtarzalnego ręcznego eksportowania, a osobna walidacja wychwytuje problemy na poziomie układu i pliku, których automatyzacja nie jest w stanie samodzielnie wiarygodnie ocenić.

Zostaw komentarz

Jak przenieść obraz w programie Microsoft Word

Jak przenieść obraz w programie Microsoft Word

Dowiedz się, jak przeciągać obraz w programie Word, wybierać opcje zawijania tekstu, zachowywać go w akapicie lub mocować na stronie oraz rozwiązywać problemy z obrazami, których nie można przenieść.

Jak wstawić pole wyboru w programie Excel: dwie proste metody

Jak wstawić pole wyboru w programie Excel: dwie proste metody

Dowiedz się, jak wstawić pole wyboru w programie Excel za pomocą narzędzia w komórce, zliczyć zaznaczone elementy za pomocą formuł lub dodać powiązany formant formularza w starszych wersjach programu na komputery stacjonarne.

Jak automatycznie wypełniać litery w programie Excel: od A do Z i dalej

Jak automatycznie wypełniać litery w programie Excel: od A do Z i dalej

Generuj litery od A do Z, małe litery lub etykiety powyżej Z w programie Excel za pomocą formuły z uchwytem wypełniania, SEKWENCJI lub wielokrotnego użytku listy niestandardowej.

Jak przekreślić tekst w programie Excel: skróty i metody krok po kroku

Jak przekreślić tekst w programie Excel: skróty i metody krok po kroku

Dowiedz się, jak przekreślać wiersze w programie Excel w systemie Windows, na komputerze Mac i w przeglądarce, formatować część komórki i usuwać wiersze bez usuwania ich wartości.

Czym jest Microsoft Access? Jak działają jego narzędzia bazodanowe

Czym jest Microsoft Access? Jak działają jego narzędzia bazodanowe

Microsoft Access to aplikacja bazy danych systemu Windows do przechowywania powiązanych rekordów, tworzenia zapytań, tworzenia formularzy wprowadzania danych i generowania raportów. Dowiedz się, jak działa i kiedy się sprawdza.

Importowanie i eksportowanie danych z programu Office Outlook 2010: przenoszenie danych za pomocą pliku PST

Importowanie i eksportowanie danych z programu Office Outlook 2010: przenoszenie danych za pomocą pliku PST

Dowiedz się, jak zaimportować plik PST do programu Outlook 2010 lub wyeksportować pocztę, kontakty, kalendarz i zadania. Postępuj zgodnie z odpowiednimi menu i unikaj pominiętych folderów lub duplikatów.

Zmiana wysokości i szerokości linii siatki w programie Word 2010

Zmiana wysokości i szerokości linii siatki w programie Word 2010

Dowiedz się, jak dostosować wysokość i szerokość linii siatki w programie Word 2010, zmienić widoczną częstotliwość linii oraz ustawić odstępy między liniami siatki w pionie i w poziomie.

Jak wstawić aktywną stronę internetową do slajdu programu PowerPoint

Jak wstawić aktywną stronę internetową do slajdu programu PowerPoint

Za pomocą dodatku LiveWeb możesz umieścić witrynę internetową na slajdzie programu PowerPoint, ustawić jej rozmiar i sposób odświeżania oraz sprawdzić zgodność przed prezentacją.

Odzyskiwanie hasła PST programu Outlook za pomocą jądra Nucleus

Odzyskiwanie hasła PST programu Outlook za pomocą jądra Nucleus

Odzyskaj zapomniane hasło PST programu Outlook, korzystając z bieżących instrukcji Kernela, obejmujących m.in. identyfikację właściwego pliku, wykonanie kopii zapasowej i sprawdzenie ograniczeń narzędzia.

Dodaj święta narodowe do kalendarza Outlook

Dodaj święta narodowe do kalendarza Outlook

Dodaj święta krajowe w nowym Outlooku, Outlooku w przeglądarce lub klasycznej wersji Outlooka. Dowiedz się, jak unikać duplikatów wydarzeń i sprawdzać, czy nie brakuje dat z lat 2026–2027.