| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > PDF компонент |
| Автор: Delvish 5.8.2014, 11:44 |
| Добрый день! Тема ранее несколько раз поднималась, но с тех пор прошло много времени, да и Гугл мне толком не помог. Итак, вопрос: есть ли VCL-компонент или хотя бы библиотека (с мануалом/описанием) для чтения PDF-файлов без использования ActiveX? Требуется всего лишь уметь отправлять PDF-документы на печать, не выводя их на экран, не внося никаких изменений. Только печать на принтер по умолчанию и ничего более. |
| Автор: drkot 5.8.2014, 14:34 |
| PDF формат лицензированный и как следствие "нормально" с ним работают только решения от разработчиков купивших SDK. Коммерческие пакеты компонентов есть и их можно купить. Для тех кто не хочет покупать но функционал такой нужен есть скомпилированные COM+ библиотеки, которые Вы так пренебрежительно назвали "ActiveX". Их тоже несколько... мне известно как минимум две: родная Adobe и Foxit. Так что алгоритм такой: если религия позволяет, то используем ActiveX иначе если есть возможность покупаем готовый пакет иначе качаем SDK и строим 101 велосипед; если результат не достигнут, пересматриваем религиозные убеждения. Как то так |
| Автор: b8195108 5.8.2014, 15:44 |
| Для печати используй ShellExecute (при наличии на машине пользователя софта для работы с pdf) |
| Автор: Delvish 5.8.2014, 17:17 |
| В том-то и дело, что хочется быть избавленным от привязки к установленному ПО типа Adobe Reader и иже с ним. А за ссылочку спасибо, на Вики я что-то не догадался заглянуть. |
| Автор: drkot 5.8.2014, 18:46 |
Это собственность Adobe. Или наличие текста ГОСТ как то передает Вам права на него? Тем более это стандарт на конкретную версию (1.7), и нет никаких гарантий, что он подойдет к другой (1.7.1). Ну а если захочется реализовать его в коде... то думаю покупка SDK будет на три порядка дешевле... Бесплатные как правило поддерживают только доисторические версии. Платные тоже не блещут, так как основной задачей есть "сохранить в PDF" а для этого и версия 1.3 подойдет. Delvish, на самом деле Вам надо только одна Dll. Ее то и надо таскать. Находится она просто... в списке установленных TypeLib... копируете... регистрируете на целевом компьютере... и все... весил она около 10 мегов вроде... лицензия на нее такая же как и на adobe reader, следовательно можно использовать смело. К стати сам риадер именно ее и использует. Добавлено через 7 минут и 3 секунды Решать вам, но когда через пол года Ваша программа перестанет читать каждый второй файл, а использованная Вами библиотека не развивается... то вопрос вернется в исходное состояние. Так что лучше решать с перспективой, а не использовать "кирпичи бывшие в употреблении"... |
| Автор: baldina 5.8.2014, 19:14 | ||
это дает мне право им пользоваться. и вам, и кому угодно. это суть https://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B9_%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82. как вы думаете, почему до стандартизации версии выходили каждые год-два, а теперь уже 8 лет не меняется. так что я не слишком опасаюсь 1.7.1 |
| Автор: drkot 5.8.2014, 21:56 |
пользуйтесь... но прав у Вас от этого не прибавится... когда переведете его в SDK сможете конкурировать с Foxit, можете гордиться тем что имеете документ. Как то не понятно чем вы так гордитесь? Может тем что Вам понадобится 5 лет для создания полноценного SDK? или тем, что Вы этого просто не понимаете и советуете другим удариться в эту авантюру? |
| Автор: baldina 5.8.2014, 23:05 |
| здесь я ничего не советовал. я ответил на заданный ТС вопрос и указал на ошибку намеренную неточность несоответствие действительности в вашем ответе. холиварить не стану. |
| Автор: Delvish 6.8.2014, 08:24 | ||||
к сожалению, именно это я и обнаружил, прежде чем создать тему. надеялся, что ошибся...
это ж какая именно? речь о AcroPDF.dll из набора Adobe Reader'а? требует установленного вышеозвученного адобовского продукта. а так - да, мне отлично подойдет либа (с описанием), умеющая понимать пдф формат. имелось ввиду, что мне не нужна визуальная компонента для отрисовки ПДФа на форме. главное - скормить принтеру данные ) кстати, в наборе того же Гугл Хрома есть библиотека pdf.dll, возможно ли как-то ее использовать? описания тоже нигде не нашел. |
| Автор: baldina 6.8.2014, 11:43 | ||
есть там пара полезных функций
|
| Автор: drkot 6.8.2014, 11:47 |
вижу два варианта проверок: 1. попробовать ее зарегистрировать как com+, если получается, то останется только подсунуть правильные параметры в com объект 2. Пойти на сайт Rouse и взять там утилиту для просмотра экспортируемых функций. Соответственно проверить соответствует набор экспорта dll плагину (или адону) хрома. она проверяет несколько ключей реестра, их можно устанавливать простейший вариант RegKeyExists(HKLM, 'Software\Adobe\Acrobat Reader') а так берете Process Monitor от Русиновича и смотрите что она там проверяет |
| Автор: PointerToNil 6.8.2014, 12:23 |
| pdf.dll из Хрома вполне работает, я пробовал. описание функций baldina привел, только пробелы внутри кавычек какие-то странные. остается добавить, что 1) её авторы - foxit 2) гугл открыл её исходники: https://code.google.com/p/pdfium/ http://www.itproportal.com/2014/06/19/google-throws-pdfium-into-the-open-source-community/ http://www.infoq.com/news/2014/06/google-chrome-pdf-engine-free |
| Автор: Delvish 6.8.2014, 14:42 |
| Да, через TDUMP смотрел, несколько экспортируемых функций есть, в т.ч. озвученные baldina Всем спасибо за ответы и ссылки! Думаю, Гугло-Фокситовская библиотека - как раз то, что нужно |