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

18

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

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

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

Самка луня
источник
дубликаты - superuser.com/questions/156189/…
Пантера
Лучший ответ - установить другое приложение и использовать «принтер 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
7

Я использую unoconv, который конвертирует все форматы, поддерживаемые LibreOffice.

Франсиско Дрейфус
источник
1
Просто для записи: $ unoconv myfile.docx(он создает myfile.pdf)
токланд
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на имя вашего файла.)

user882893
источник
Причины, по которым вы бы выбрали unoconv среди других вариантов?
горбатый