Как конвертировать .doc или .docx в .pdf


18

Мне нужно конвертировать пакет .docили .docxфайлы .pdfв терминал, не используя графический интерфейс.

Было бы полезно, если бы я мог обрабатывать несколько файлов.

Я также хотел бы сохранить как можно больше метаданных.



Лучший ответ - установить другое приложение и использовать «принтер PDF». Что не так с использованием метода CLI или я потеряю метаданные
Ringtail

Я не говорил, что с oowriter, gscan2pdf или любым другим методом GUI что-то не так. Я искал CLI, а затем намеревался включить его в .bashrc, чтобы все pdf ~/some_.docx, вот и все. Спасибо за предложение.
Ringtail

1
Смотрите также этот ответ .
Таккат

@ Takkat - Этот ответ переводит его в дубликат зоны для меня.
RobotHumans

Ответы:


28

lowriter может использоваться как инструмент командной строки (lowriter является частью 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

У меня нет windows, поэтому тестдок скачать отсюда

www.mltweb.com/prof/testdoc.doc


libreofice выдает ошибки, используя этот метод, жалуется на отсутствие /home/user/documents/test.docx blah
Ringtail

какую команду вы использовали? У вас есть test.docx?
Пантера

1
Работает идеально для меня! Остерегайтесь использования символа «пробел» из командной строки ... Когда вы доберетесь до символа пробела, просто нажмите «tab»;)
Pitto

1
lowriter не конвертирует docx файлы правильно. По крайней мере, не всегда.
Скептически июль

1
Когда я впервые попробовал предложенную вами lowriterкоманду в Ubuntu 12.04, она открыла всплывающее окно и зависла. Я убил его с помощью Cc и попробовал снова без DISPLAYпеременной. На этот раз он сначала напечатал ошибку об отсутствии отображения, но конвертировал документ без проблем. Ожидается ли поведение, что команда может работать только без DISPLAYпеременной окружения?
kasperd


3

Я использую следующий скрипт:

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

--headless предотвратит открытие Libreoffice сотен файлов и, в конечном итоге, сбой, если вы попробуете это с каталогами, содержащими много файлов .doc


0

На мой взгляд, лучший способ с unoconv.

Сначала установите пакет:

sudo apt install unoconv

а затем преобразовать в PDF с помощью этой команды:

unoconv -f pdf XXYY.docx

(Замените XXYY.docxна имя вашего файла.)


Причины, по которым вы бы выбрали unoconv среди других вариантов?
горбатый
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.