powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
25 сообщений из 25, страница 1 из 1
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39619432
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую!

В топике muPDF уже шла речь о моей обертке над PDF.DLL от Google Chrome. Вобщем то, вся обертка заключается в двух юнитах MyPDFRender.pas и MyChromePDFRender.pas


Но решил всё оформить культурно под именем ChromePDFRendererForDelphi. Создал репозиторий на GitHub'e , в котором планирую выкладывать исправления или добавление фич.



Кроме обертки в репозитории находятся:

1) Компонент для FastReport'a для встраивания страницы из PDF-файла как графического обьекта в отчет. Есть возможность грузить PDF-документ из файла на диске, из файла загруженного в компонент и из датасета. Правда, не могу пока найти баг, из датасета грузит только в design-time. Отображение возможно в двух режимах: векторном (рендеринг через Canvas - функции) и через промежуточный Bitmap. Отдельное свойство указывает, из какого из трех источников брать PDF-файл. Другое свойство указывает номер отображаемой PDF-страницы. DPI определяется автоматически.

2) Девелоперский проект для обертки и компонента для FastReport'a

3) И маленький, но интересный проект: PDF-просмотрщик для демонстрации обертки

4) PDF.DLL и скомпилированные проекты (в папке BIN\ )


Важную вещь не сказал: все тестировалось и писалось на Delphi 6 Service Pack 3



Теперь насчет лицензионной чистоты PDF.DLL. Не знаю :) В интернете куча мнений. К примеру, несколько лет назад Google открыл исходники библиотеки (правда под именем pdfium), так что если я правильно понимаю, либу стало возмжно легально распространять с проектом. Единственный вопрос, какую либу: PDF.DLL или PDFium.DLL. Вот статья на немецком: https://www.golem.de/news/google-chromes-pdf-renderer-ist-open-source-1405-106692.html

Далее выкладываю содержимое репозитория на сегодняшний день (без папки BIN\ ) на форуме, мало ли что там в будущем с гитхабом произойдет. Кстати, PDF.DLL еще выложил на своем дропбоксе: скачать PDF.DLL
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39619434
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Компонент для FastReport'a
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39619436
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простой просмотрщик PDF-файлов
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39619443
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
статья с golem.de в виде PDF-файла
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39619463
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо.

Кроик СемёнКстати, PDF.DLL еще выложил на своем дропбоксе: скачать PDF.DLL На всякий случай выкладываю тут:
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39633703
Vladimir1212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Кроик Семён !
Очень полезная штука.
Чуток переделал программку для просмотра PDF . Убрал то, что на мой взгляд лишнее... Немного по-другому сделал загрузку функций из DLL , ну и т.д.
Мне часто приходится переводить большие файлы PDF (около 12МБ на 1лист), полученные в высоком качестве из AutoCAD , в файлы JPG или TIFF . Для этого есть много программок on-line . Но у них есть ряд ограничений. Потому полностью на безе Ваших модулей сделал свой PDF --> TIFF . Прилагаю ( Delphi Tokyo 10.2.2- 32bit, Win10-64bit ) -
ссылка http://gofile.me/2Zesj/SWtlK9cfw
Не совсем понял, почему не удалось напрямую использовать функцию библиотеки pdf.dll - RenderPDFPageToBitmap (хотя она есть): рендеринг делается всегда через контекст устройства. Там не понятно, что в качестве параметра этой функции для того Bitmap, куда надо рендерить, задавать?
И ещё вопрос. Нет ли похожей DLL , которая могла бы работать при компиляции проекта Delphi под 64bit ?
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39633730
под ван
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну рассказывай чем собирал ,как ужимал ,что удалял.
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39633871
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir1212И ещё вопрос. Нет ли похожей DLL , которая могла бы работать при компиляции проекта Delphi под 64bit ?

существует проект PDFium, который есть развитие PDF.DLL oт Chrome после открытия исходников. Вот что находится на его базе:
1) Pascal-Sources: PdfiumLib
2) DLLs (32бит и 64бит): Pdfium Build Server



Vladimir1212Не совсем понял, почему не удалось напрямую использовать функцию библиотеки pdf.dll - RenderPDFPageToBitma
просто всё завязал на RenderPDFToCanvas для уменьшения кода и единобразия
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39633890
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще бы djvu смотреть, и цены бы не было
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39634008
Vladimir1212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
под ванНу рассказывай чем собирал ,как ужимал ,что удалял.
По мелочам... Блоки Try...End по-своему сделал, вывод сообщения об ошибке - по-простому (тот что был raise Exception.Create('Error!') , ничего не выдавал), MouseWheel для прокрутки, убрал родительский класс с абстрактными методами: ну не нужен он мне просто. Все ненужные мне методы тоже выкинул. Сейчас вот добавил сохранение в Tiff , Jpeg или Bmp по выбору кнопкой.
Новая ссылка:
http://gofile.me/2Zesj/DgS4TzKwx
Собирал под Tokyo 10.2.2 , компилляция только Win32 . Тестировал в Win10 64bit .
---------------------------------------------------------------------------------------------------------
Сейчас попытаюсь поиграться с PDFium : хочу сделать приложение под 64bit .
Только по ссылке выше этих библиотек PDFium.dll дофига. От 4 до 15Мб весом. Какую скачивать-то?
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39634014
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какую из DLLок выбрать: это сюда:
https://github.com/pvginkel/PdfiumBuild
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39668760
AnTe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроик, спасибище тебе невероятное! То, что искал. То, что доктор прописал.

До этого в программе был вставлен штатный просмотровщик акробата, который требовал, чтобы акробат ридер стоял у клиента и был ужасно тормозной, этот просто летает. Офигенски всё просто.
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39669088
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
классно, я рад
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39708388
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён, А простой "текстовый" PDF как прочитать. Ничего кроме текста нет.
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39708416
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всмысле, что значит "прочитать"?
Глазами с экрана?

или вы имеете ввиду "программно вытащить" текст из PDF". Если это, то такой вопрос не по данному топику. Здесь только рендеринг в картинку
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39708423
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик СемёнВсмысле, что значит "прочитать"?
Глазами с экрана?

или вы имеете ввиду "программно вытащить" текст из PDF". Если это, то такой вопрос не по данному топику. Здесь только рендеринг в картинку


Прочитать = получить данные в текстовом виде с первой строки файла по последнюю.
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39708438
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LocksmithPCПрочитать = получить данные в текстовом виде с первой строки файла по последнюю.Без формата, цвета и пр. красивостей? Ну та считай в поток и выцепи текст по открытому ПДФформату типа https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39708451
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
GatorLocksmithPCПрочитать = получить данные в текстовом виде с первой строки файла по последнюю.Без формата, цвета и пр. красивостей? Ну та считай в поток и выцепи текст по открытому ПДФформату типа https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf
Только парсить всё это задолбаешься, поэтому библиотеки для работы с PDF стоят по полторы штуки зелени
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39708455
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39708460
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GatorБез формата, цвета и пр. красивостей? Ну та считай в поток и выцепи текст по открытому ПДФформату типа https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf


Вот мне ВВП пообещал на пензию в 59, месяц побухаю, а потом сразу возьмусь за чтение этого увлекательного романа о семистах страницах :)
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39708474
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.

или вот еще, через Pdfium. Судя по названиям функций вроде оно, сам не пробовал

21355390

unit PdfiumCore;

class TPdfPage

function GetCharCount: Integer;

function ReadChar(CharIndex: Integer): WideChar;

function GetCharFontSize(CharIndex: Integer): Double;

function GetCharBox(CharIndex: Integer): TPdfRect;

function GetCharIndexAt(PageX, PageY, ToleranceX, ToleranceY: Double): Integer;

function ReadText(CharIndex, Count: Integer): string;

function GetTextAt(const R: TPdfRect): string;

function GetTextAt(Left, Top, Right, Bottom: Double): string;
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39708479
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён LocksmithPC,

https://stackoverflow.com/questions/3650957/how-to-extract-text-from-a-pdf

Вроде все норм конвертнуло. 3600 страниц достаточно быстро. Спс.

Кроик СемёнP.S.

или вот еще, через Pdfium. Судя по названиям функций вроде оно, сам не пробовал

21355390

unit PdfiumCore;

class TPdfPage

function GetCharCount: Integer;

function ReadChar(CharIndex: Integer): WideChar;

function GetCharFontSize(CharIndex: Integer): Double;

function GetCharBox(CharIndex: Integer): TPdfRect;

function GetCharIndexAt(PageX, PageY, ToleranceX, ToleranceY: Double): Integer;

function ReadText(CharIndex, Count: Integer): string;

function GetTextAt(const R: TPdfRect): string;

function GetTextAt(Left, Top, Right, Bottom: Double): string;


С этим тоже поразбираюсь, надо на ходу кое-что рихтовать...
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39708917
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LocksmithPCGatorБез формата, цвета и пр. красивостей? Ну та считай в поток и выцепи текст по открытому ПДФформату типа https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf


Вот мне ВВП пообещал на пензию в 59, месяц побухаю, а потом сразу возьмусь за чтение этого увлекательного романа о семистах страницах :)Ну тебе ведь только текст вынуть надь.
Плюс ещё сноски/заголовки/вставки/ надыбать-раздолбать.
________________
Ха! Да у меня только дельфёвых книжек за 1000 стр. каждая. Говно вопрос.
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39708990
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,

уважаю! спасибо!
...
Рейтинг: 0 / 0
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
    #39709187
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GatorХа! Да у меня только дельфёвых книжек за 1000 стр. каждая. Говно вопрос.


А чо, одной не хватило? Каждую покупал?
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]