Создание PDF-файла из командной строки OpenOffice
-
21-08-2019 - |
Вопрос
У меня есть некоторая документация, написанная в OpenOffice, и я хотел бы включить некоторые из нее в виде PDF-файлов в финальные поставки сборки.Я хотел бы сделать это с помощью скрипта автоматической сборки.
Есть ли способ создать PDF-файл из OpenOffice с помощью команды командной строки?
Решение
Искусство решения имеет также очень хороший API для выполнения преобразования в Java.Это немного медленно, но достаточно просто.Вот как я это использую:
File inputFile = new File("C:\\oreyes\\hola.doc");
File outputFile = new File("C:\\oreyes\\hola.pdf");
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
try {
connection.connect();
} catch(Exception e) {}
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(inputFile, outputFile);
connection.disconnect();
Вы можете создать jar с этим и обработать его из командной строки.
Другие советы
С сентября 2012 года LibreOffice может конвертировать документ в PDF из командной строки:
lowriter --headless --convert-to pdf yourfile.odt
Он также имеет поддержку массового преобразования:
lowriter --headless --convert-to pdf yourfiles*.odt
преобразует все файлы, соответствующие шаблону, в соответствующий PDF-файл.
При выполнении этой команды не должно быть открыто окон LibreOffice.
Существует отличный инструмент под названием "unoconv", он был в моем репозитории Ubuntu.Это преобразует ODF ( ОДФ ), .орв, ...в PDF и, я думаю, в другие форматы тоже.
Я также мог конвертировать файлы PowerPoint в PDF.
Хотя этот вопрос немного устарел, приведу кое-что с целью документирования некоторых распространенных ошибок в решении LibreOffice:
Если
lowriter
не работает для вас, потому что он игнорирует параметры командной строки и вызывает графический интерфейс, просто попробуйте вызватьlibreoffice
илиloffice
двоичные файлы:loffice --headless --convert-to pdf yourfile.odt
Если вы получите это сообщение
Error: Please reverify input parameters...
попробуйте запустить его от имени root (напримерчерез sudo).Это помогло мне в Ubuntu 12.04 LTS с установленным LibreOffice 3, а также может быть причиной, по которой это преобразование не выполняется на веб-сервере без надлежащей настройки (Libreoffice --headless отказывается конвертировать, кроме root, не будет работать из PHP-скрипта)
Также убедитесь, что у вас не запущены какие-либо другие экземпляры LibreOffice, иначе он просто завершится беззвучным сбоем и вообще не выполнит преобразования.
Есть anytopdf ( любой ).Сам еще не пробовал этого.
Цитирую...
anytopdf - это скрипт на perl, который преобразует OpenOffice.org Microsoft Office (Word DOC, Excel XLS), RTF, HTML и другие openoffice.org читаемые форматы файлов в формат PDF.Он автоматически установит поддерживающую 'AnyToPDF' OpenOffice.org Базовую библиотеку макросов в конфигурации текущего пользователя OpenOffice.org если она еще не присутствует.
Посвящается миру, любви, пониманию и уважению ко всем существам.