3

Я пытаюсь найти некоторые способы преобразования файлов .pptx в формат PDF из командной строки. Я настроил принтер cups-pdf на который я могу отправлять задания, и до сих пор он сводился к следующей команде:

libreoffice -pt PDF somePowerpointFilePath.pptx

где PDF - это имя моего принтера. Однако, как и в других случаях, libreoffice печатает мои документы в портретной ориентации, когда я хочу использовать альбомную ориентацию.

Я посмотрел на эти вопросы, но ни один из них, похоже, не подходит мне здесь.

https://superuser.com/questions/486130/printing-from-the-command-line-with-libreoffice-lpr-commands
https://superuser.com/questions/135495/how-do-i-convert-this-filetype-to-pdf

Я также читал о параметрах unoconv , но я бы предпочел не играть с моими библиотеками Python, чтобы настроить это.

Я также заметил параметр --convert-to для команды libreoffice , но он ведет себя не так, как я ожидаю. Я ожидаю, что смогу использовать это с помощью libreoffice --convert-to pdf myFileName.pptx , но эта команда выполняется совсем не сразу (сообщается, когда вы работаете с libreoffice), и, похоже, не вносит никакой PDF-файл в текущем рабочем каталоге (как предполагается в соответствии с man-страницей).

Если кто-то может пролить свет на то, как заставить работать любой из этих двух подходов (печать через CUPS или использование --convert-to ), я был бы признателен.

1 ответ1

0

Вы можете запустить LibreOffice в режиме «без головы» (то есть в качестве утилиты командной строки без графического интерфейса). Но это не будет работать, если в то же время экземпляр LibreOffice работает с графическим интерфейсом.

Одна команда, которая делает то, что вы хотите, даже если экземпляр GUI активен одновременно, может выглядеть примерно так:

mkdir $HOME/pdf ;
/path/to/soffice                                   \
   --headless                                      \
   --infilter="Microsoft PowerPoint 2007/2010 XML" \
   "-env:UserInstallation=file:///tmp/LibreOffice_Conversion_${USER}" \
   --convert-to pdf:impress_pdf_Export             \
   --outdir $HOME/pdf                              \
     test.docx

Здесь soffice - инструмент командной строки, который устанавливается в каждой установке LibreOffice. Скорее всего, это в /usr/bin/soffice .

Для получения более подробной информации см. Мой другой ответ на StackOverflow:

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