PDF/A — это подмножество формата PDF, содержащее ограниченный набор возможностей представления данных. Данный формат является стандартом ISO и предназначен для долгосрочного хранения электронных документов.
В промышленной разработке все чаще возникает необходимость экспорта файлов различных форматов в PDF/A. И если экспорт табличных документов 1С в этот формат решен вендором (в т.ч. начиная с версии платформы 8.3.16 даже реализована возможность сохранения табличного документа в форматы PDF/A-2 и PDF/A-3 для системного перечисления ТипФайлаТабличногоДокумента реализованы значения PDF_A_2 и PDF_A_3), то с конвертацией файлов других форматов, в частности .docx, есть вопросы.
В статье описан частный способ решения этой задачи для Windows окружения, требующий наличия Microsoft Word на сервере 1С.
Способ основан на методе ExportAsFixedFormat API Microsoft.Office.Tools.Word
//в переменной ИмяВременногоФайлаDocx на входе файл .docx
ИмяВременногоФайлаPDF_A = ПолучитьИмяВременногоФайла(".pdf"); //выходной файл формата pdf/a
WordApp = Новый COMОбъект("Word.Application");
DocApp = WordApp.Documents.Add(ИмяВременногоФайлаDocx);
UseISO19005_1 = True; //признак экспорта в формат pdf/a
DocApp.ExportAsFixedFormat(ИмяВременногоФайлаPDF_A,
17, //wdExportFormatPDF 17
0, //OpenAfterExport
0, //OptimizeFor1
0, //Range
0, //From
0, //To
0, //Item
1, //IncludeDocProps
0, //KeepIRM
0, //CreateBookmarks
1, //DocStructureTags
0, //BitmapMissingFonts
UseISO19005_1);
WordApp.Application.Quit();
WordApp = Неопределено;
УдалитьФайлы(ИмяВременногоФайлаDocx);
УдалитьФайлы(ИмяВременногоФайлаPDF_A);