Хочу проконсультироваться у уважаемых коллег.
Есть ли у кого-то опыт работы с Bullzip через OLE?
Версия Bullzip - 6.0.0. Хочу получить интерфейс через CreateOleObject. Делаю, как увидел в примерах. Но программа не находит ProgID "Bullzip.PdfUtil". Сам тоже не нахожу в реестре. Рекомендуемый ProgID "Bullzip.PdfSettings" заменил на "Bullzip.PdfPrinterSettings" и получил интерфейс.
Но какой класс использовать именно для печати? Возможно ли это для старой бесплатной версии? Заранее благодарен.
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
14-10-2020 23:27 | Сообщение от автора вопроса
Что-то не получилось работать, как с принтером. Открывается окно Adobe Reader, создается pdf, не смотря на указание через PdfSettings печатать bmp. Может надо было указать bmp256? Короче, установил последнюю версию.
Но окно Adobe Reader продолжает открываться. Пошёл на некрасивое грубое решение - закрывать ненависное окно. Просто мониторил в потоке и закрывал. Но оказалось, что если закрыть окно рано, то ничего не печатается. PdfUtil посылает файл на печать асинхронно и поймать конец обработки не возможно. Но можно задать приложение, которое запустится после создания целевого файла. Написал консольку, которая при старте посылает сообщение главной программе. В главной программе жду этого сигнала и при получении закрываю Adobe Reader, а потом продолжаю обработку следующего файла.
Вот такая безобразная логика, но работает.
Однако, радоваться рано. Целевая bmp имеет ориентацию рамки, как в источнике. Но изображение туда вписывается с другой ориентацией. SetValue('Orientation', 'все варианты') не влияет ни как.
Если у кого-то есть опыт работы с bullzip таким способом, то буду благодарен за помощь и наводку.
Спасибо за ответ.
У меня задача даже не для печати PDF (для этого есть множество компонентов и даже, мой собственный). Мне надо из PDF (одностраничого) сделать ВMP.
Есть свой код по извлечению изображений, но он заточен на компоновку частей изображения полосками друг под другом. А в данной задаче - квадратиками. Можно переделать, но возникают глюки где-то на 2/3 процесса.
Решил доверить это bullzip, который выполняет задачу на 5. Изображение, кстати, большое - сам pdf где-то 20 - 40 Мб. Программа будет стоять на единственном компе - у меня.
Дома у меня версия 11.9 и класс PDFUtil тоже есть. Но переодически (сейчас уже очень редко) программа показывает окна с предложением приобрести платную версию, или добавляет в созданный файл свою подпись. Поэтому хотел оставить старую версию. Есть идея настройки делать через интерфейс Bullzip.PdfPrinterSettings, а печатаь, как на обычном принтере. Если не получиться, то буду ставить новую версию. К сожалению, упал удаленный доступ, могу проверить только в понедельник.
Насчёт BullZip 6.0 не знаю, но с сайта качается BullzipPDFPrinter_12_0_0_2872 - это условно-бесплатная community версия. Бесплатная версия ограничена только тем, что некоторые форматы документов (DOC например) она печатает только первые две странички. PDF и TIF (наиболее интересные для меня форматы, так как именно в них я экспортирую большую часть созданной работы для дальнейшего "только чтения") создаются без ограничений (хотя типично я использую PDFCreator, но уж ради такого случая установил и BullZip).
ProgID для BullZip.PDFUtil у меня в реестре есть и равен {F9444F96-C32A-4745-9FF3-9059B92CDAB0}. Проверять, устанавливается ли соединение COM я не стал, но у вас вопрос как раз был в том, что нужного объекта нет. Возможно, вам стоит попробовать более свежую версию программы? Возможно, ограничения бесплатной версии не будут для вас существенными?
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.