Jak wsadowo przekonwertować .doc lub .docx na .pdf

18

Muszę wsadowo przekonwertować zestaw .doclub .docxpliki do .pdfterminala, nie używając GUI.

Byłoby pomocne, gdybym mógł przetwarzać wsadowo wiele plików.

Chciałbym również zachować jak najwięcej metadanych.

Ringtail
źródło
Najlepszą odpowiedzią jest zainstalowanie innej aplikacji i użycie „drukarki pdf”. Co jest nie tak przy użyciu metody CLI lub stracę metadane
Ringtail
Nie powiedziałem, że coś jest nie tak z Oowriter, gscan2pdf lub jakąkolwiek inną metodą GUI. Szukałem CLI, a następnie zamierzam włączyć go do .bashrc, aby móc pdf ~/some_.docx, to wszystko. Dzieki za sugestie.
Ringtail,
1
Zobacz także tę odpowiedź .
Takkat,
@Takkat - Ta odpowiedź przenosi mnie do zduplikowanej strefy.
RobotHumans

Odpowiedzi:

28

lowriter może być używany jako narzędzie wiersza poleceń (lowriter jest częścią LibreOffice)

lowriter --convert-to pdf *.doc
convert /home/bodhi/Documents/testdoc2.doc -> /home/bodhi/Documents/testdoc2.pdf using writer_pdf_Export
convert /home/bodhi/Documents/testdoc.doc -> /home/bodhi/Documents/testdoc.pdf using writer_pdf_Export

evince testdoc.pdf

Nie mam okien, więc pobierz testdoc stąd

www.mltweb.com/prof/testdoc.doc

Pantera
źródło
libreofice zgłasza błędy przy użyciu tej metody, narzeka na brak znalezienia /home/user/documents/test.docx blah
Ringtail
jakiego polecenia użyłeś? Czy masz test.docx?
Panther
1
Działa idealnie dla mnie! Uważaj na używanie znaku „spacja” z wiersza poleceń ... Gdy dojdziesz do znaku spacji, po prostu naciśnij „tab”;)
Pitto,
1
lowriter nie konwertuje poprawnie plików docx. Przynajmniej nie zawsze.
Sceptyczny Jule,
1
Kiedy po raz pierwszy wypróbowałem twoje sugerowane lowriterpolecenie na Ubuntu 12.04, otworzyło się okno powitalne i zamarło. Zabiłem go za pomocą Cc i spróbowałem ponownie bez DISPLAYzmiennej. Tym razem po raz pierwszy wydrukował błąd dotyczący braku wyświetlania, ale przekonwertował dokument bez żadnych problemów. Czy oczekuje się zachowania, że ​​polecenie może działać tylko bez DISPLAYzmiennej środowiskowej?
kasperd
7

Używam unoconv, który konwertuje wszystkie formaty obsługiwane przez LibreOffice.

Francisco Dreyfuss
źródło
1
Dla $ unoconv myfile.docxmyfile.pdf
przypomnienia
3

Używam następującego skryptu:

for f in *.doc
do
lowriter --headless --convert-to pdf "$f"
done

--headless uniemożliwi Libreoffice otwieranie 100 plików i awarię, jeśli spróbujesz tego z katalogami zawierającymi wiele plików .doc

Bruni
źródło
0

Moim zdaniem najlepszym sposobem jest unoconv.

Najpierw zainstaluj pakiet:

sudo apt install unoconv

a następnie przekonwertować na pdf za pomocą tego polecenia:

unoconv -f pdf XXYY.docx

(Zamień XXYY.docxna nazwę pliku.)

użytkownik882893
źródło
Powody, dla których wybrałeś unoconv zamiast innych opcji?
gatorback