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

В топике 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
23.03.2018, 12:54
    #39619434
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
Компонент для FastReport'a
...
Рейтинг: 0 / 0
23.03.2018, 12:55
    #39619436
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
Простой просмотрщик PDF-файлов
...
Рейтинг: 0 / 0
23.03.2018, 13:04
    #39619443
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
статья с golem.de в виде PDF-файла
...
Рейтинг: 0 / 0
23.03.2018, 13:22
    #39619463
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
Большое спасибо.

Кроик СемёнКстати, PDF.DLL еще выложил на своем дропбоксе: скачать PDF.DLL На всякий случай выкладываю тут:
...
Рейтинг: 0 / 0
20.04.2018, 12:39
    #39633703
Vladimir1212
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
Спасибо, Кроик Семён !
Очень полезная штука.
Чуток переделал программку для просмотра 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
20.04.2018, 13:13
    #39633730
под ван
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
Ну рассказывай чем собирал ,как ужимал ,что удалял.
...
Рейтинг: 0 / 0
20.04.2018, 16:43
    #39633871
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
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
20.04.2018, 17:03
    #39633890
cptngrb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
еще бы djvu смотреть, и цены бы не было
...
Рейтинг: 0 / 0
20.04.2018, 22:27
    #39634008
Vladimir1212
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
под ванНу рассказывай чем собирал ,как ужимал ,что удалял.
По мелочам... Блоки 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
20.04.2018, 22:38
    #39634014
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
Какую из DLLок выбрать: это сюда:
https://github.com/pvginkel/PdfiumBuild
...
Рейтинг: 0 / 0
03.07.2018, 13:11
    #39668760
AnTe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
Кроик, спасибище тебе невероятное! То, что искал. То, что доктор прописал.

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

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

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


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


Вот мне ВВП пообещал на пензию в 59, месяц побухаю, а потом сразу возьмусь за чтение этого увлекательного романа о семистах страницах :)
...
Рейтинг: 0 / 0
26.09.2018, 14:16
    #39708474
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
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
26.09.2018, 14:23
    #39708479
LocksmithPC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
Кроик Семён 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
27.09.2018, 00:19
    #39708917
Gator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ChromePDFRendererForDelphi - обертка для PDF.DLL от Google Chrome
LocksmithPCGatorБез формата, цвета и пр. красивостей? Ну та считай в поток и выцепи текст по открытому ПДФформату типа https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf


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

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


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


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