В LibreOffice есть возможность конвертировать файлы в различные форматы с помощью командной строки.
Для настройки тестового примера конвертации файлов будем использовать программу unoconv + API.
Universal Office Converter (unoconv) - это инструмент командной строки для преобразования любого формата документа, который LibreOffice может импортировать в любой формат документа, который LibreOffice может экспортировать. Он использует привязки UNO LibreOffice для неинтерактивного преобразования документов.
Установка и использование сервиса конвертации файлов.
Сначала необходимо установить Docker.
В Docker необходимо развернуть и запустить Uconov + API. Ссылка на описание и инструкцию к сервису- https://github.com/alphakevin/unoconv-server#readme.
После установки Docker для развертывания и запуска сервиса конвертации файлов в командной строке нужно выполнить команду docker run -d -p 4000:4000 --name unoconv alphakevin/unoconv-server. После запуска приложения в Docker можно отправлять http запросы для конвертации файлов.
Для использования сервиса конвертации файлов необходимо отправить POST запрос к сервису. Чтобы упростить отправку http запросов из 1С будем использовать библиотеку http коннектор. Ссылка на скачивание и описание библиотеки - https://github.com/vbondarevsky/Connector.
ДвоичныеДанныеФайлаВорд = Новый ДвоичныеДанные("C:\temp\test.docx");
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
Заголовки.Вставить("Content-Disposition", "attachment; filename=test.docx");
Ответ = КоннекторHTTP.Post("http://localhost:4000/convert/format/pdf/export/SelectPdfVersion=1/output/newname.pdf",
ДвоичныеДанныеФайлаВорд, Новый Структура("Заголовки", Заголовки));
Ответ.Тело.Записать("C:\temp\result.pdf");