Imagius: конвертация PDF в картинку (Native Win 32/64)
Внешняя компонента 1С:Предприятие для конвертации PDF файлов в картинки без использования дополнительных программ. Работает на сервере и в тонком клиенте.
Для рендеринга PDF в компоненту передаётся путь к файлу. В результате можно получить либо несколько файлов картинок (для каждой страницы), либо двоичные данные указанной страницы. И обработать эти данные в оперативной памяти без записи на диск.
Компонента работает как на x86, так и x86_64 платформах, в режиме Сервера, Тонкого клиента. Распространяется в виде пакетного файла, который содержит в себе все версии компоненты.
.
Пример работы с компонентой на сервере и на клиенте:
#Область ТестДляКлиента
&НаКлиенте
Процедура ТестДляКлиента(Команда)
Подключить(Истина);
КонецПроцедуры
&НаКлиенте
Процедура Подключить(УстановитьЕслиНеПодключено) Экспорт
Сообщить("Начинаем подключение ВК на клиенте.");
НачатьПодключениеВнешнейКомпоненты(
Новый ОписаниеОповещения("ПослеПодключения", ЭтотОбъект, УстановитьЕслиНеПодключено),
"ОбщийМакет.Imagius",
"Imagius",
ТипВнешнейКомпоненты.Native);
КонецПроцедуры
&НаКлиенте
Процедура ПослеПодключения(Подключено, УстановитьЕслиНеПодключено) Экспорт
Если Подключено Тогда
Сообщить("ВК успешно подключена на клиенте.");
Тест();
ИначеЕсли УстановитьЕслиНеПодключено Тогда
Сообщить("Начинаем установку ВК...");
НачатьУстановкуВнешнейКомпоненты(
Новый ОписаниеОповещения("Подключить", ЭтотОбъект, Ложь),
"ОбщийМакет.Imagius");
Иначе
Сообщить("Не удалось установить/подключить внешнюю компоненту.");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Асинх Процедура Тест()
ОбъектВК = Новый("Addin.Imagius.Imagius");
НастройкиПрименены = Ждать ОбъектВК.НастройкиРендерингаАсинх(
"{
| ""target_width"": 2000,
| ""maximum_height"": 3000
|}");
Сообщить("Настройки применены: " + НастройкиПрименены.Значение);
Результат = Ждать ОбъектВК.PdfFile2ImgFileАсинх(Объект.ПутьФайлPDF, "password", "1-100");
Результат = ОбработкаСтрокиXML.УдалитьНедопустимыеСимволыXML(Результат.Значение);
Сообщить("Обработанные файлы: " + Результат);
Сообщить("Обработка завершена.");
КонецПроцедуры
#КонецОбласти // ТестДляКлиента
#Область ТестДляСервера
&НаКлиенте
Процедура ТестДляСервера(Команда)
ТестНаСервере();
КонецПроцедуры
&НаСервере
Процедура ТестНаСервере()
Если Не ПодключитьВнешнююКомпоненту("ОбщийМакет.Imagius", "Imagius", ТипВнешнейКомпоненты.Native) Тогда
Сообщить("Не удалось подключить ВК на сервере.");
Возврат;
Иначе
Сообщить("ВК успешно подключена на сервере.");
КонецЕсли;
ОбъектВК = Новый("Addin.Imagius.Imagius");
НастройкиПрименены = ОбъектВК.НастройкиРендеринга(
"{
| ""target_width"": 2000,
| ""maximum_height"": 3000
|}");
Сообщить("Настройки применены: " + НастройкиПрименены);
Данные = ОбъектВК.PdfFile2ImgData(Объект.ПутьФайлPDF, "", 1);
Картинка = Новый Картинка(Данные, Истина);
Сообщить("Получена картинка в формате: " + Картинка.Формат());
ОбработкаКартинки = Новый ОбрабатываемаяКартинка(Картинка);
ОбработкаКартинки.ВыделитьОбласть(100, 100, 860, 960);
Картинка = ОбработкаКартинки.ПолучитьКартинку();
Картинка.Записать("C:\...\label-crop.png");
Сообщить("Обработка завершена.");
КонецПроцедуры
#КонецОбласти // ТестДляСервера
|
Методы
НастройкиРендеринга (Настройки) / ConfigPdfium (Options)
Параметры:
Настройки / Options - Строка - настройки компоненты в формате JSON. Передаваться могут не все поля, а только необходимые. Например, передаём точную ширину картинки (target_width) и максимальную высоту (maximum_height). Фактическая высота картинки будет расчитана автоматически. Допустимые поля структуры:
- target_width - Число - ширина картинки в пикселях;
- target_height - Число - высота картинки в пикселях;
- scale_width_factor - Число - масштаб по ширине;
- scale_height_factor - Число - масштаб по высоте;
- maximum_width - Число - максимальный размер результата по ширине в пикселях;
- maximum_height - Число - максимальный размер результата по высоте в пикселях.
Результат:
Булево - признак того, что настройки успешно установлены.
ФайлPdfВФайлКартинки (Путь, Пароль, Страницы) / PdfFile2ImgFile (Path, Password, Pages)
Параметры:
- Путь / Path - Строка - путь к PDF файлу.
- Пароль / Password - Строка - пароль к файлу, если установлен, или пустая строка.
- Страницы / Pages - Строка - номера необходимых страниц в формате "1, 2, 5-7".
Результат:
Строка - массив в формате JSON с именами файлов-картинок.
ФайлPdfВДанныеКартинки (Путь, Пароль, Страница) / PdfFile2ImgData (Path, Password, Page)
Параметры:
- Путь / Path - Строка - путь к PDF файлу.
- Пароль / Password - Строка - пароль к файлу, если установлен, или пустая строка.
- Страница / Page - Число - номер страницы.
Результат:
ДвоичныеДанные - данные, из которых можно сформировать картинку и обработать, сохранить на диск.
.
© 2024, exponenta.info По всем вопросам пишите на адрес r.kuzmin@exponenta.info