Конвертор из PDF
Разработка - Разработка внешних компонент
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Предлагаю вашему вниманию Native компоненту для 1С 8.3 для преобразования документа PDF.
Написана на С++ и статически скомпонована с библиотекой pdfium.
Данная компонента не требует регистрации. как com. Достаточно сохранить ее на диск из макета. И подключить средствами 1С.
Функции данной компоненты.
1.
Результат = Компонента.ЗагрузитьPDF(ПутьКФайлу);
Это первое что нужно вызвать.
Возвращаемое значение. Истина если успешно прочитан файл, Ложь если прочитать не удалось.
2.
КоличествоСтраниц = Компонента.КоличествоСтраницВДокументе;
Получает количество страниц в документе PDF.
3.
Для х = 0 по КоличествоСтраниц -1 Цикл
ДвоичныеДанные = Компонента.ПолучитьСтраницу(х);
Получает изображение страницы в формате BMP в виде двоичных данных, далее их можно или сохранить или вставить в макет в виде картинки.
4.
Текст = Компонента.ПолучитьТекстСтраницы(х);
Получает текст страницы, если страница в PDF имеет в своем составе текстовые блоки
Это основные функции, для которых я делал данную компоненту.
Также есть еще функция сохранения страницы в файл.
Компонента.СохранитьКартинку(Номерстраницы,ПолныйПутьКФайлу);
И также можно загрузить изображение( получить двоичные данные)
ДвДанные = Компонента.ЗагрузитьКартинку(ПолныйПутьКФайлу);
Основная идея была именно в получении изображении PDF, чтобы можно было вставить их в Табличный Документ. Так как пакетная печать не умеет работать с PDF.
Ниже как можно вставить изображение в Табличный Документ.
ТабДок = Новый ТабличныйДокумент;
Если Результат Тогда
КоличествоСтраниц = Компонента.КоличествоСтраницВДокументе;
Для х = 0 по КоличествоСтраниц -1 Цикл
ДвоичныеДанные = Компонента.ПолучитьСтраницу(х);
Если ДвоичныеДанные <> Неопределено Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
Область = Макет.ПолучитьОбласть("Изображение");
Рисунок = Область.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Высота = 297;
Рисунок.Ширина = 210;
Рисунок.РазмерКартинки = РазмерКартинки.Пропорционально;
Рисунок.ГраницаСверху = Истина;
Рисунок.ГраницаСнизу = Истина;
Рисунок.ГраницаСправа = Истина;
Рисунок.ГраницаСлева = Истина;
Рисунок.Картинка = Новый Картинка(ДвоичныеДанные);
ТабДок.Вывести(Область);
КонецЕсли;
КонецЦикла;
Также в архиве есть обработка с примером работы с этой компонентой

Компонента есть под win64 и Win86
Тестировалась на платформе 8.3.22. Работать должно в любых конфигурациях, главное, чтобы платформа поддерживала работу с Native компонентами (все что выше 8.3, должно работать).
Вступайте в нашу телеграмм-группу Инфостарт