Как я могу конвертировать документ OpenOffice в PDF из командной строки Linux?

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

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

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

ooffice -pt pdfprinter studentwhodoesntfollowdirectionswell.odt

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

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

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

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

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

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

Alt text

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

Alt text

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

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

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

$ Oowriter –convert-to pdf –invisible name.odt

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

С 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).

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

  • Поиск слова в PDF-конвертер, который будет обрабатывать специальные шрифты
  • Печать Pdf в C #
  • Почему некоторые файлы pdf / acrobat не поддерживают «предыдущий просмотр»?
  • Как конвертировать PDF в PDF / A
  • IText изменить или удалить слой в PDF
  • Использование Ghostscript для преобразования многостраничного PDF в один JPG?
  • Задайте разные части поля формы, чтобы иметь разные шрифты, используя iTextSharp
  • Как установить wkhtmltopdf на веб-сервере на основе Linux (общий хостинг)
  • Может ли заполняемая в формате PDF форма отправлять на HTTPS-URL?
  • Как изменить размер страницы PDF?
  • Использование PDFBox для записи кодированных строк UTF-8 в PDF-файл
  • Interesting Posts

    Datagridview: Как установить ячейку в режиме редактирования?

    CalledFromWrongThreadException: только исходный stream, создавший иерархию представлений, может касаться представлений

    Прямая передача файла между двумя компьютерами в Интернете

    Отображение функции по значениям карты в Clojure

    Как написать незакодированный Json для моего представления с помощью Razor?

    Статическое выделение непрозрачных типов данных

    Как изменить столбец MySQL, чтобы разрешить NULL?

    Кассандра – Есть ли способ ограничить число асинхронных запросов?

    Поиск хорошей реализации хеш-таблицы в C

    NOLOCK с Linq to SQL

    Нужно ли моей ng-модели иметь точную точку, чтобы избежать проблем с областью?

    Ошибка ReSharper WPF: «Не удается разрешить символ« MyVariable »из-за неизвестного DataContext»

    Запрос MySQL для выбора результатов с автоматическим приращением в качестве нового столбца, добавленного в результат

    MVC Razor рассматривает вложенную модель foreach

    Как избежать обстрела ObservableCollection.CollectionChanged несколько раз при замене всех элементов или добавлении коллекции элементов

    Давайте будем гением компьютера.