Требовалось:
1) Пользователь загружает документ, который может быть в форматах как JGP, PNG, так и PDF.
&НаСервере
Функция GhostScript_ПреобразоватьPDFВJPG(ПутьКGhostScript, стрИсходныйPDF, УникальныйИдентификатор)
мМассивКартинок = Новый Массив;
бОшибка = Ложь;
стрПутьКПапкеДляСохранения = КаталогВременныхФайлов() + Новый УникальныйИдентификатор() + "\";
Попытка
СоздатьКаталог(стрПутьКПапкеДляСохранения);
Исключение
бОшибка = Истина;
КонецПопытки;
Если НЕ бОшибка Тогда
стрКоммандаGhostScriptДляКонвертацииPDFВJPG = ПутьКGhostScript + " -dUseCIEColor -dSAFER -dBATCH -dNOPAUSE -dPDFSETTINGS=/screen -sDEVICE=jpeg -dJPEGQ=60 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r400 -sOutputFile=" + стрПутьКПапкеДляСохранения + "page-%d.jpg " + """" + стрИсходныйPDF + """";
Попытка
shell = Новый COMОбъект("WScript.Shell");
shell.Run(стрКоммандаGhostScriptДляКонвертацииPDFВJPG, 0, -1);
Исключение
стр = ОписаниеОшибки();
бОшибка = Истина;
КонецПопытки;
Если Не бОшибка Тогда
мНайденныеФайлы = НайтиФайлы(стрПутьКПапкеДляСохранения,"*.jpg",Истина);
Для Каждого НайденныйФайл Из мНайденныеФайлы Цикл
Если мНайденныеФайлы.Найти(НайденныйФайл) = 0 Тогда
ФайлКартинка = Новый COMОбъект("WIA.ImageFile");
ФайлКартинка.LoadFile(НайденныйФайл.ПолноеИмя);
ВысотаСтраницы = ФайлКартинка.Height/400 * 25.4;
ШиринаСтраницы = ФайлКартинка.Width/400 * 25.4;
КонецЕсли;
Попытка
мМассивКартинок.Добавить(ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(НайденныйФайл.ПолноеИмя), УникальныйИдентификатор));
УдалитьФайлы(НайденныйФайл.ПолноеИмя);
Исключение
КонецПопытки;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Попытка
УдалитьФайлы(стрПутьКПапкеДляСохранения);
Исключение
КонецПопытки;
Возврат мМассивКартинок;
КонецФункции
2) Пользователь загружает печать, которая также может быть в форматах как JGP, PNG, так и PDF, причем печатей может быть несколько.
3) Пользователь переносит печать на документ в любое место.
4) Сохраняет документ в тех же пропорциях и в том же формате, что и исходный.
Сохранить пропорции и качество документа удалось, указав DPI 400 и количество пикселей в дюйме 25.4
ВысотаСтраницы = ФайлКартинка.Height/400 * 25.4;
ШиринаСтраницы = ФайлКартинка.Width/400 * 25.4;
Все это планировал делать, конечно же, в табличном документе, и сразу же возникла проблема, как это запихнуть PDF документ в ТабДок.
Использовал для этого GhostScript, который должен быть установлен на сервере или на клиентской машине, смотря где будет вызываться.