Представляю высокопроизводительную нативную компоненту для работы с PDF-документами в среде 1С:Предприятие 8. Основная задача решения — быстрая и качественная конвертация страниц PDF в растровые изображения и сборка PDF-файлов из набора картинок.
Компонента разработана на C++17 с использованием движка PDFium (используется в Google Chrome), что гарантирует корректный рендеринг даже сложных документов.
Основные возможности
-
PDF в Изображения: рендеринг страниц в форматы PNG, JPG, BMP, TGA, TIFF.
-
Изображения в PDF: сборка многостраничного PDF из списка файлов или двоичных данных.
-
Гибкая настройка: управление DPI, качеством сжатия, поворотом страниц и отражением.
-
Универсальный формат: все методы возвращают JSON, что упрощает обработку результата в 1С.
-
Кроссплатформенность: полная поддержка Windows и Linux (x86 и x64).
Технические характеристики
| Параметр | Значение |
| Технология | NativeAPI (не требует регистрации в реестре Windows) |
| Версия | 2026.03.17.4 |
| Зависимости | PDFium (BSD), stb (Public Domain) |
| Платформы | Windows (x86/x64), Linux (x86/x64) |
Архитектура файлов
При упаковке в ZIP-архив для 1С используются следующие файлы:
-
PDFConverter.dll— Windows (32/64 бит) -
PDFConverter.so— Linux (32/64 бит)
Быстрый старт в 1С
Подключение компоненты выполняется стандартным методом:
// Подключаем из архива или по пути
ПодключитьВнешнююКомпоненту("PDFConverter.zip", "PDFConv", ТипВнешнейКомпоненты.Native);
К = Новый("AddIn.PDFConv.PDFConverter");
Пример 1: Конвертация PDF в PNG (постранично)
Метод возвращает массив строк в формате Base64, упакованный в JSON.
// Настройки: 300 DPI, все страницы
Результат = К.КонвертироватьВИзображения("C:\temp\report.pdf", "PNG", 1, 0, , , 100, 300);
// Парсим JSON
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Результат);
ОбъектРезультат = ПрочитатьJSON(ЧтениеJSON);
Если ОбъектРезультат.ТекстОшибки = "" Тогда
Для Каждого Стр64 Из ОбъектРезультат.Данные Цикл
ДвоичныеДанныеСтраницы = Base64Значение(Стр64);
// Обработка страницы...
КонецЦикла;
Иначе
Сообщить("Ошибка: " + ОбъектРезультат.ТекстОшибки);
КонецЕсли;
Пример 2: Создание PDF из набора картинок
Вы можете передать список путей через точку с запятой или передать ДвоичныеДанные одного изображения.
СписокФайлов = "C:\scan1.jpg;C:\scan2.png;C:\photo3.bmp";
Результат = К.КонвертироватьВPDF(СписокФайлов, "A4"); // Можно указать "A3", "Legal" или размер в мм "210x297"
// Получаем готовый PDF
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Результат);
ОбъектРезультат = ПрочитатьJSON(ЧтениеJSON);
Если ОбъектРезультат.ТекстОшибки = "" Тогда
ДД_PDF = Base64Значение(ОбъектРезультат.Данные[0]);
ДД_PDF.Записать("C:\output\document.pdf");
КонецЕсли;
Справочник методов и свойств
Свойства (Read-only)
-
Версия (Version): Строка текущей версии.
-
ПоследняяОшибка (LastError): Описание последней проблемы.
-
КоличествоСтраниц (PageCount): Количество страниц в загруженном PDF.
Ключевые методы
-
КонвертироватьВИзображения(...)
-
Параметры: Источник, Формат, ПерваяСтр, ЛимитСтр, Ширина, Высота, Качество, DPI, Поворот, ОтразитьГ, ОтразитьВ.
-
-
КонвертироватьВPDF(...)
-
Параметры: Источник (пути или ДД), РазмерСтраницы.
-
-
ПолучитьВерсиюЧислом()
-
Удобно для проверки обновлений (возвращает
2026031704).
-
Прикрепленные файлы: PDFConverter.zip (скомпилированная компонента).
Вступайте в нашу телеграмм-группу Инфостарт