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). Фактическая высота картинки будет расчитана автоматически. Допустимые поля структуры:

Результат:

Булево - признак того, что настройки успешно установлены.

ФайлPdfВФайлКартинки (Путь, Пароль, Страницы) / PdfFile2ImgFile (Path, Password, Pages)

Параметры:

Результат:

Строка - массив в формате JSON с именами файлов-картинок.

ФайлPdfВДанныеКартинки (Путь, Пароль, Страница) / PdfFile2ImgData (Path, Password, Page)

Параметры:

Результат:

ДвоичныеДанные - данные, из которых можно сформировать картинку и обработать, сохранить на диск.

Скачать актуальную версию.


© 2024, exponenta.info   По всем вопросам пишите на адрес r.kuzmin@exponenta.info