Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PDF компонент 
V
    Опции темы
Delvish
Дата 5.8.2014, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


oO
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 13.12.2006

Репутация: 1
Всего: 4



Добрый день!

Тема ранее несколько раз поднималась, но с тех пор прошло много времени, да и Гугл мне толком не помог. Итак, вопрос: есть ли VCL-компонент или хотя бы библиотека (с мануалом/описанием) для чтения PDF-файлов без использования ActiveX? Требуется всего лишь уметь отправлять PDF-документы на печать, не выводя их на экран, не внося никаких изменений. Только печать на принтер по умолчанию и ничего более.
PM MAIL   Вверх
drkot
Дата 5.8.2014, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 5
Всего: 8



PDF формат лицензированный и как следствие "нормально" с ним работают только решения от разработчиков купивших SDK. 
Коммерческие пакеты компонентов есть и их можно купить.
Для тех кто не хочет покупать но функционал такой нужен есть скомпилированные COM+ библиотеки, которые Вы так пренебрежительно назвали "ActiveX". Их тоже несколько... мне известно как минимум две: родная Adobe и Foxit.

Так что алгоритм такой:
если религия позволяет, то используем ActiveX 
иначе если есть возможность покупаем готовый пакет
иначе качаем SDK и строим 101 велосипед;

если результат не достигнут, пересматриваем религиозные убеждения.

Как то  так smile


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
b8195108
Дата 5.8.2014, 15:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.7.2011

Репутация: 2
Всего: 2



Для печати используй ShellExecute (при наличии на машине пользователя софта для работы с pdf)
PM MAIL   Вверх
baldina
Дата 5.8.2014, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



Цитата(drkot @  5.8.2014,  14:34 Найти цитируемый пост)
PDF формат лицензированный

это открытый формат, есть международный стандарт ISO 32000-1:2008, неофициальный текст доступен бесплатно 

Цитата(Delvish @  5.8.2014,  11:44 Найти цитируемый пост)
Требуется всего лишь уметь отправлять PDF-документы на печать, не выводя их на экран

в windows вывод на экран и печать это одно и то же
если нужно любое средство, можно пользоваться 
Цитата(b8195108 @  5.8.2014,  15:44 Найти цитируемый пост)
ShellExecute
, озаботившись, что бы был установлен умеющий это делать софт.
если нужно работать с файлом напрямую, есть куча коммерческих и бесплатных библиотек. конечно есть и vcl.

PM MAIL   Вверх
Delvish
Дата 5.8.2014, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


oO
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 13.12.2006

Репутация: 1
Всего: 4



В том-то и дело, что хочется быть избавленным от привязки к установленному ПО типа Adobe Reader и иже с ним. А за ссылочку спасибо, на Вики я что-то не догадался заглянуть.
PM MAIL   Вверх
drkot
Дата 5.8.2014, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 5
Всего: 8



Цитата(baldina @  5.8.2014,  17:29 Найти цитируемый пост)
есть международный стандарт

Это собственность Adobe. Или наличие текста ГОСТ как то передает Вам права на него?
Тем более это стандарт на конкретную версию (1.7), и нет никаких гарантий, что он подойдет к другой (1.7.1).
Ну а если захочется реализовать его в коде... то думаю покупка SDK будет на три порядка дешевле...
 
Цитата(baldina @  5.8.2014,  17:29 Найти цитируемый пост)
есть куча коммерческих и бесплатных библиотек

Бесплатные как правило поддерживают только доисторические версии. Платные тоже не блещут, так как основной задачей есть "сохранить в PDF" а для этого и версия 1.3 подойдет.

Delvish, 
Цитата(Delvish @  5.8.2014,  18:17 Найти цитируемый пост)
от привязки к установленному ПО

на самом деле Вам надо только одна Dll. Ее то и надо таскать.
Находится она просто... в списке установленных TypeLib... копируете... регистрируете на целевом компьютере... и все... весил она около 10 мегов вроде... лицензия на нее такая же как и на adobe reader, следовательно можно использовать смело. К стати сам риадер именно ее и использует.

Добавлено через 7 минут и 3 секунды
Решать вам, но когда через пол года Ваша программа перестанет читать каждый второй файл, а использованная Вами библиотека не развивается... то вопрос вернется в исходное состояние.
Так что лучше решать с перспективой, а не использовать "кирпичи бывшие в употреблении"...


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
baldina
Дата 5.8.2014, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



Цитата(drkot @  5.8.2014,  18:46 Найти цитируемый пост)
Это собственность Adobe. Или наличие текста ГОСТ как то передает Вам права на него?

это дает мне право им пользоваться. и вам, и кому угодно. это суть открытого стандарта. как вы думаете, почему до стандартизации версии выходили каждые год-два, а теперь уже 8 лет не меняется. так что я не слишком опасаюсь 1.7.1
PM MAIL   Вверх
drkot
Дата 5.8.2014, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 5
Всего: 8



Цитата(baldina @  5.8.2014,  20:14 Найти цитируемый пост)
мне право им пользоваться

пользуйтесь... но прав у Вас от этого не прибавится...

когда переведете его в SDK сможете конкурировать с Foxit, можете гордиться тем что имеете документ.
Как то не понятно чем вы так гордитесь? Может тем что Вам понадобится 5 лет для создания полноценного SDK? или тем, что Вы этого просто не понимаете и советуете другим удариться в эту авантюру?


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
baldina
Дата 5.8.2014, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



здесь я ничего не советовал. я ответил на заданный ТС вопрос и указал на ошибку намеренную неточность несоответствие действительности в вашем ответе. холиварить не стану.
PM MAIL   Вверх
Delvish
Дата 6.8.2014, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


oO
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 13.12.2006

Репутация: 1
Всего: 4



Цитата(drkot @  5.8.2014,  19:46 Найти цитируемый пост)
Бесплатные как правило поддерживают только доисторические версии. Платные тоже не блещут, так как основной задачей есть "сохранить в PDF" а для этого и версия 1.3 подойдет.

к сожалению, именно это я и обнаружил, прежде чем создать тему. надеялся, что ошибся...
Цитата(drkot @  5.8.2014,  19:46 Найти цитируемый пост)
на самом деле Вам надо только одна Dll. Ее то и надо таскать.Находится она просто... в списке установленных TypeLib... копируете... регистрируете на целевом компьютере... и все... весил она около 10 мегов вроде... лицензия на нее такая же как и на adobe reader, следовательно можно использовать смело. К стати сам риадер именно ее и использует.

это ж какая именно? речь о AcroPDF.dll из набора Adobe Reader'а? требует установленного вышеозвученного адобовского продукта. а так - да, мне отлично подойдет либа (с описанием), умеющая понимать пдф формат.

Цитата(baldina @  5.8.2014,  17:29 Найти цитируемый пост)
в windows вывод на экран и печать это одно и то же

имелось ввиду, что мне не нужна визуальная компонента для отрисовки ПДФа на форме. главное - скормить принтеру данные )


кстати, в наборе того же Гугл Хрома есть библиотека pdf.dll, возможно ли как-то ее использовать? описания тоже нигде не нашел.
PM MAIL   Вверх
baldina
Дата 6.8.2014, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: нет
Всего: 101



Цитата(Delvish @  6.8.2014,  08:24 Найти цитируемый пост)
есть библиотека pdf.dll, возможно ли как-то ее использовать

есть там пара полезных функций
Код

procedure GetPDFDocInfo (pdf_buffer: PChar; buffer_size:integer; 
  page_count :PInt; max_page_width:PDouble); cdecl external ' pdf.dll ';

procedure RenderPDFPageToDC (pdf_buffer: PChar; buffer_size:integer;
page_number: integer; dc: HDC;
dpi_x, dpi_y, bounds_origin_x, bounds_origin_y: integer;
bounds_width, bounds_height: integer;
fit_to_bounds, stretch_to_bounds, keep_aspect_ratio;
center_in_bounds, autorotate: boolean); cdecl external ' pdf.dll ';


PM MAIL   Вверх
drkot
Дата 6.8.2014, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 5
Всего: 8



Цитата(Delvish @  6.8.2014,  09:24 Найти цитируемый пост)
библиотека pdf.dll

вижу два варианта проверок: 
1. попробовать ее зарегистрировать как com+, если получается, то останется только подсунуть правильные параметры в com объект
2. Пойти на сайт Rouse и взять там утилиту для просмотра экспортируемых функций. Соответственно проверить соответствует набор экспорта dll плагину (или адону) хрома.


Цитата(Delvish @  6.8.2014,  09:24 Найти цитируемый пост)
требует установленного вышеозвученного

она проверяет несколько ключей реестра, их можно устанавливать 
простейший вариант RegKeyExists(HKLM, 'Software\Adobe\Acrobat Reader')
а так берете Process Monitor от Русиновича и смотрите что она там проверяет


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
PointerToNil
Дата 6.8.2014, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 17.6.2013

Репутация: 3
Всего: 6



pdf.dll из Хрома вполне работает, я пробовал. описание функций baldina привел, только пробелы внутри кавычек какие-то странные.

остается добавить, что 1) её авторы - foxit 2) гугл открыл её исходники: https://code.google.com/p/pdfium/
http://www.itproportal.com/2014/06/19/goog...urce-community/
http://www.infoq.com/news/2014/06/google-c...pdf-engine-free

Это сообщение отредактировал(а) PointerToNil - 6.8.2014, 12:58
PM MAIL   Вверх
Delvish
Дата 6.8.2014, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


oO
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 13.12.2006

Репутация: 1
Всего: 4



Да, через TDUMP смотрел, несколько экспортируемых функций есть, в т.ч. озвученные baldina
Всем спасибо за ответы и ссылки! Думаю, Гугло-Фокситовская библиотека - как раз то, что нужно
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0557 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.