1c: извлечение страницы из pdf документа
В настоящий момент в 1С нет встроенного средства для редактирования pdf документов, поэтому единственный выход — использовать внешние программы. Например — pdftk или ExtractPagePDF
Ниже пример реализации для ExtractPagePDF:
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 |
функция ИзвлечьСтраницуPDF(имяфайла,страница) answer=новый Структура("error,result",false,""); // вариант с ExtractPDF ПутьКПрограммеИзвлечения = lsОбщегоНазначенияСервер.ПутьКПрограммеРаботыСPDFФайлами(); ИмяВременногоФайлаИзвлечения = ПолучитьИмяВременногоФайла("pdf"); КаталогИзвлечения = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(КаталогВременныхФайлов()); КодВозвратаКомпоненты = 1; ЗапуститьПриложение(ПутьКПрограммеИзвлечения + " 1 """ + имяфайла + """ """ + ИмяВременногоФайлаИзвлечения+""" "+Формат(страница,"ЧГ=0"), , Истина, КодВозвратаКомпоненты); Если КодВозвратаКомпоненты <> 0 Тогда answer.error=true; answer.result="Не удалось извлечь файлы счетов! для л/с "; возврат answer; КонецЕсли; answer.result=ИмяВременногоФайлаИзвлечения; // вариант с pdftk //ПутьКПрограммеИзвлечения = lsОбщегоНазначенияСервер.ПутьКПрограммеРаботыСPDFФайлами(); //ИмяВременногоФайлаИзвлечения = ПолучитьИмяВременногоФайла("pdf"); //КаталогИзвлечения = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(КаталогВременныхФайлов()); //КодВозвратаКомпоненты = 1; //страница=Формат(страница,"ЧГ=0"); //ЗапуститьПриложение(ПутьКПрограммеИзвлечения +" """+ имяфайла + """ cat "+страница+" """ + ИмяВременногоФайлаИзвлечения+"""", , Истина, КодВозвратаКомпоненты); //Если КодВозвратаКомпоненты <> 0 Тогда // answer.error=true; // answer.result="Не удалось извлечь файлы счетов! для л/с "; // возврат answer; //КонецЕсли; //answer.result=ИмяВременногоФайлаИзвлечения; возврат answer; конецфункции |