4

У меня есть студенты, которые, когда меня спрашивают о PDF, иногда передают мне документ OpenOffice или электронную таблицу. file(1) может идентифицировать эти документы, но мне не удалось обнаружить, как преобразовать их в PDF с помощью командной строки. (Страница man для ooffice(1) содержит опцию для печати документа, но не для преобразования в PDF.) Google бесполезен, за исключением того, что он дает мне неприятное ощущение, что это невозможно сделать без изящного скрипта на языке, который я не знаю, против API, документацию которого я не могу найти.

Может ли кто-нибудь помочь мне решить проблему преобразования OpenDocument в PDF, используя только командную строку Unix?

4 ответа4

6

Я думаю, что самым простым способом было бы установить принтер PDF на вашем устройстве, а затем просто:

ooffice -pt pdfprinter studentwhodoesntfollowdirectionswell.odt

Изменить: Только что нашел сообщение на форумах Ubuntu с кем-то, кто пришел к тому же решению, которое я предложил (с удобными инструкциями денди). печать в pdf из командной строки [решено]

Редактировать 2: Я только что натолкнулся на unoconv который представляет собой скрипт на python, который использует привязки OOo UNO. Поэтому я просто хотел обновить этот ответ

1

$ oowriter --convert-to pdf --invisible name.odt

Это все. Если ваш CLI является графическим, вы можете опустить опцию «--invisible».Проверено на opensuse 12.3.

1

Я делаю это используя cups-pdf. Вам нужно будет установить OpenOffice и запустить ooffice в автономном режиме, чтобы приложение не запускало графический интерфейс.

принтер PDF обычно находится в репозиториях, поэтому просто sudo apt-get install cups-pdf или yum install cups-pdf .

Далее вам необходимо установить принтер. При желании вы можете установить принтер через командную строку.

Если вы устанавливаете принтер через GUI, (в Ubuntu) это так же просто, как System -> Administration -> Printing. Нажмите на стрелку и выберите « Новый принтер»:

альтернативный текст

Пройдите через мастер и запишите, как вы называете свой принтер, он понадобится вам из командной строки. Как видите, я использовал cups-pdf:

альтернативный текст

Завершите работу мастера, и вы готовы к конвертации. Откройте терминал и запустите:

ooffice -headless -nologo -pt cups-pdf doc.odt

Под вашей домашней директорией у вас будет папка PDF. Внутри будет ваш конвертированный документ.

1

С libreoffice, который поставляется с CentOS 7 (4.1.4):

soffice --headless --convert-to pdf  file.odt 
soffice --headless --convert-to doc  file.odt 
soffice --headless --convert-to html file.odt 

soffice и libreoffice - это один и тот же двоичный файл, который нравится друг другу. oowriter - это скрипт, который вызывает libreoffice --writer. Таким образом, вышесказанное должно работать для всех производных staroffice (libreoffice, openoffice).

Я использую его для конвертации сотен документов в день, отлично работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .