База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как преобразовать файл Word в PDF средствами 1С? › Ответ в теме: Как преобразовать файл Word в PDF средствами 1С?
Преобразовать файл Word (.docx) в PDF средствами 1С можно через COM-объект Microsoft Word, если на сервере или клиенте установлен MS Office. В вашем случае можно использовать функцию, которая открывает документ Word и сохраняет его в формате PDF с помощью метода ExportAsFixedFormat. Важно, что в финальном коде используется именно COM-объект Word.Application, а не другие способы.
Вот пример функции для конвертации и пример использования этой функции:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Функция КонвертироватьWordВPDF(ИмяФайлаDocx, ИмяФайлаPDF) Экспорт Попытка WordApp = Новый COMОбъект("Word.Application"); // В Unix-клиенте COM не доступен, заменить на подходящий метод WordApp.Visible = Ложь; Документ = WordApp.Documents.Open(ИмяФайлаDocx); // Формат экспорта PDF - 17 (wdExportFormatPDF) CONST_WD_EXPORT_FORMAT_PDF = 17; UseISO19005_1 = Истина; Документ.ExportAsFixedFormat( ИмяФайлаPDF, CONST_WD_EXPORT_FORMAT_PDF, // wdExportFormatPDF 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, UseISO19005_1 ); Документ.Close(0); WordApp.Quit(); Возврат Истина; Исключение Если ЗначениеЗаполнено(WordApp) Тогда WordApp.Quit(); КонецЕсли; Возврат Ложь; КонецПопытки; КонецФункции |
|
1 2 3 4 5 6 7 8 |
ПутьКИсходномуФайлу = ПолучитьРабочуюПапку() + "Документ.docx"; ПутьКФайлуPDF = ПолучитьРабочуюПапку() + "Документ.pdf"; Если КонвертироватьWordВPDF(ПутьКИсходномуФайлу, ПутьКФайлуPDF) Тогда Сообщить("Конвертация прошла успешно"); Иначе Сообщить("Ошибка конвертации"); КонецЕсли; |
Обратите внимание, что для работы этого кода:
— На машине, где выполняется код, должен быть установлен Microsoft Word.
— Путь к исходному файлу и к файлу PDF должен быть корректным и доступным.
— В функции используется параметр UseISO19005_1 = Истина, что позволяет сохранять PDF в формате PDF/A.
— Если Microsoft Word отсутствует, то средствами 1С напрямую преобразовать Word в PDF нельзя, и нужно рассматривать альтернативные инструменты вне 1С (например, LibreOffice, wkhtmltopdf и т.п.).
Таким образом, описанный способ — стандартный и надежный при наличии MS Word.