Fastreport delphi можно ли заменить библиотеки acrobat reader на другие
Существует два основных способа организовать в программе просмотр документов в формате PDF.
- Использование технологии ActiveX;
- Использование специальных компонентов.
Компоненты для работы с PDF есть не во всех выпусках Delphi и чаще всего их нужно искать и устанавливать дополнительно. В тоже время, для использования ActiveX необходимо всего лишь наличие на компьютере пользователя соответствующего программного обеспечения. В данном случае Adobe Acrobat Reader (бесплатная) или Adobe Acrobat.
Работу с ActiveX можно условно разделить на два этапа.
- Импорт библиотеки типов или компонентов;
- Собственно, использование импортированных средств в приложении.
Импорт компонентов ActiveX
Для импорта компонентов используется команда «Component» – «Import Component» в главном меню Delphi. Сам процесс импорта реализован в виде мастера.
На первой странице мастера выбираем «Import ActiveX Control».
Далее выбираем нужный нам компонент. В данном случае Adobe Acrobat Browser Control Type Library 1.0.
Далее выбираем панель компонентов, на которой будут размещаться компоненты для просмотра с PDF после импорта.
После этого необходимо решить, как поступить с импортируемыми компонентами. Так как планируется их использование в виде компонентов Delphi, выбираем «Install to New Package».
Теперь остаётся только указать имя вновь создаваемого пакета.
После нажатия на кнопку «Finish», компоненты ActiveX для просмотра PDF будут импортированы в Delphi.
Просмотр PDF в приложении
Для создания просмотра PDFфайлов в приложении средствами ActiveX необходим компонент TAcroPDF. Процесс его импорта подробно описан выше.
Загрузка файла для просмотра производится при помощи метода LoadFile, который принимает единственный параметр – имя файла.
В качестве примера создадим следующее приложение. Поместим на форму компоненты TAcroPDF, TOpenDialog и TButton как показано на скриншоте ниже.
При нажатии на кнопку вызываем диалог открытия файла для выбора файла PDF для просмотра.
Я уже некоторое время ищу в интернете, но я все еще не понял, как распечатать PDF-файл в Delphi, не показывая сам документ или диалоговое окно печати. Я просто хочу открыть файл, не показывая его, и распечатать его на принтере по умолчанию.
Я пытаюсь распечатать пакет PDF-документов, и нет необходимости в вмешательстве пользователя.
есть несколько различных возможностей для печати PDF-файлов. это зависит от того, можете ли вы потребовать установки Adobe Reader (я не знаю, хотите ли вы распространять свой инструмент или просто использовать его самостоятельно).
1) можно загрузить элемент управления ActiveX Adobe Reader и использовать его для печати
2) Вы можете печатать PDF-файлы с помощью Adobe Reader (можно сделать и с FoxIt)
3) вы также можете использовать Ghostview и Ghostprint
4) или вы можете использовать стороннюю библиотеку. Есть некоторые доступные, но не все из них являются бесплатными
вот куча подпрограмм, которые я написал в своей библиотеке. Если вы передадите pdf-файл в качестве параметра в PrintUsingShell он должен печатать, если программа Acrobat reader была установлена (может работать с другим pdf-программным обеспечением, если они зарегистрировались в реестре).
Примечание: пожалуйста, попробуйте их на вашей версии Delphi и операционной системе (я разработал их под Delphi 7 и использовал их под Windows XP).
Если вы хотите родной печать (без установленного Acrobat reader-но кто не установил Acrobat Reader в эти дни?) вы можете рассмотреть следующий набор компонентов:компоненты печати Pdft из WpCubed.
обновление
по запросу я добавил функцию Execute из своей библиотеки .
существует условно-бесплатная программа под названием "AutoPrint", которая отправляет все файлы в папке на принтер, стоимость 35 долларов. (если у не много клиентов).
печать PDF на принтер без попытки использовать Adobe Reader из Delphi можно сделать с помощью Debenu быстрая библиотека PDF, который поддерживает все версии Delphi от 4 до XE8. Пример кода для печати PDF программно без предварительного просмотра:
более продвинутые параметры печати также доступны с помощью функции принтера клиента. Это не бесплатный SDK, но он будет делать именно то, что вы хотите.
Сегодня я вам расскажу о том как сделать читалку для *pdf файлов, средствами delphi.
1. Запускаем delphi.
2. Нам нужно установить некоторые компоненты из библиотеки Adobe Reader. Для этого нажмем на вкладку Compoinent->Import ActiveX Control.
3. В появившемся окне найдем компонент под названием Adobe Acrobat 7.0 Browser Control Library 1.0 (название компонента может отличатся в зависимости от версии установленного Adobe Acrobat ) и нажмем на кнопку Install.
Компонент для отображения pdf мы установили, теперь перейдем непосредственно к написанию программы.
4. Создадим новый проект на котором разместим наш установленный компонент который находится на вкладке ActiveX под названием AcroPDF
несколько кнопок (button) для открытия файлов, и OpenDialog который находится на вкладке Dialog - для возможности открытия файлов
Примерно так у вас должно получится при добавлении всех компонентов на форму
5. Обработайте события Click для кнопок и пропишите следующий код
1. OpenDialog1 . FileName := ExtractFilePath(ParamStr( 0 )) + 'Pascal.pdf' ;
'Pascal.pdf' - это файл который нужно открыть, он находится в корне каталога программы.Вот и все можно компилировать и смотреть на результат, наша программа читает pdf файлы.
Вы можете по желанию усовершенствовать данную программу добавив меню Открыть файл, Сохранить, Печать . и т.д.
Сегодня я вам расскажу о том как сделать читалку для *pdf файлов, средствами delphi.
1. Запускаем delphi.
2. Нам нужно установить некоторые компоненты из библиотеки Adobe Reader. Для этого нажмем на вкладку Compoinent->Import ActiveX Control.
3. В появившемся окне найдем компонент под названием Adobe Acrobat 7.0 Browser Control Library 1.0 (название компонента может отличатся в зависимости от версии установленного Adobe Acrobat ) и нажмем на кнопку Install.
Компонент для отображения pdf мы установили, теперь перейдем непосредственно к написанию программы.
4. Создадим новый проект на котором разместим наш установленный компонент который находится на вкладке ActiveX под названием AcroPDF
несколько кнопок (button) для открытия файлов, и OpenDialog который находится на вкладке Dialog - для возможности открытия файлов
Примерно так у вас должно получится при добавлении всех компонентов на форму
5. Обработайте события Click для кнопок и пропишите следующий код
1. OpenDialog1 . FileName := ExtractFilePath(ParamStr( 0 )) + 'Pascal.pdf' ;
'Pascal.pdf' - это файл который нужно открыть, он находится в корне каталога программы.Вот и все можно компилировать и смотреть на результат, наша программа читает pdf файлы.
Вы можете по желанию усовершенствовать данную программу добавив меню Открыть файл, Сохранить, Печать . и т.д.
Недавно я обнаружил, что PDF-файлы, экспортированные фильтром экспорта PDF Fast Report, некорректно отображаются на устройствах Mac OSX, iOS и Android.
Fast Report сообщил, что их реализация в формате pdf поддерживает только Windows, и они не могут сказать, когда будет доступна новая реализация, над которой они работают.
Я также пытался использовать фильтр экспорта Gnostice, но их демонстрационный установщик не работал в Delphi XE, и когда я связался с ними, они отправили мне несколько подключенных dcus, которые также не работали. Так что ищу другой вариант.
Если вы знаете или используете фильтр экспорта PDF, который работает с Fast Report, сообщите мне.
Ноябрь 2015 г .: Fast Report теперь поддерживает PDF / A , когда этот параметр включен, PDF-файлы подходят для всех платформ.
Октябрь 2014 г. - Fast Report 5 по-прежнему генерирует "только для Windows" PDF. Готовое к производству решение этой проблемы было бы преимуществом для кроссплатформенных разработчиков, учитывая, что Fast Report - это генератор отчетов в комплекте с Delphi.
Вот свежий пример, созданный с помощью демонстрации Fast Report 5, отображаемой с помощью Adobe Reader 11 на Android 4.4:
Служба поддержки Gnostice ответила на мое электронное письмо, в котором я сообщил, что их пробная программа установки не работает, и прислала мне несколько советов о том, в чем может быть проблема, и я смог ее установить.
Компания, в которой я работаю, уже купила мне лицензию, и я уже заменил фильтр Fast Report Export Filter, что было такой простой задачей, как размещение 2 компонентов в той же форме, что и объект frxReport, и установка 2 или 3 свойств.
Кроме того, для программного экспорта отчета было также 2 строчки кода, и эту информацию легко найти в их FAQ.
В конце концов, основываясь на рекомендациях и после поиска других вариантов, чтобы найти брошенные компоненты, которые не обновлялись годами, Gnostice eDocEngine был лучшим решением.
После замены фильтра и создания PDF-файлов с помощью компонента eDocEngine PDF-файлы теперь работают одинаково в iOS, OSX и Android.
Вы всегда можете установить один из PDF-принтеров. Фактически это преобразователи PDF, которые устанавливаются как принтер Windows. Они работают из любого приложения, включая компоненты FastReprt - просто распечатайте их.
Я использую wPDF из компонентов WPcubed, это действительно отличный продукт, хорошее соотношение цены и качества
AFAIK вы можете экспортировать свои страницы Fast Report в виде метафайлов (то есть в векторном формате Windows, который на самом деле является необработанной сериализацией команд GDI).
Затем вы сможете преобразовать эти метафайлы в PDF с помощью нашей библиотеки SynPDF с открытым исходным кодом. Он работает от Delphi 5 до XE, поддерживает Unicode, может встраивать шрифты True Type и даже создавать файлы PDF / A.
Он также может экспортировать метафайлы, включенные в отчеты, как векторные изображения (а не растровые изображения), и поэтому может значительно повысить качество PDF-файла и в то же время уменьшить его размер.
Посмотрите, например, как его можно использовать для QuickReport. Аналогичный технический подход следует использовать с Fast Report.
Fast Report сообщил, что их реализация в формате pdf поддерживает только Windows, и они не могут сказать, когда будет доступна новая реализация, над которой они работают.
Я не уверен, что это следует понимать буквально, учитывая, что PDF должен быть кроссплатформенным форматом. Скорее всего, это означает, что у них на самом деле нет времени, оборудования или опыта для тестирования этих платформ. Фильтр экспорта PDF, который я использую, встроен в Fast Report! В нем наверняка есть ошибки, но мне удалось их обойти. И я думаю, что это также может сработать для вас: начните с простого документа, который правильно экспортирует, начинайте добавлять функции, пока он не тормозит, тогда вы узнаете, что его тормозит, и вы будете знать, как обойти проблему.
По моему опыту, вот что доставило мне неприятности:
- Закругленные углы в документе PDF не выглядели так, как в предварительном просмотре Fast Report. Мое исправление: обнаружена комбинация настроек, благодаря которой экспортированный PDF-файл выглядел точно так же, как документ предварительного просмотра. Для меня закругленные углы были просто косметической особенностью, а с косметикой нет «единого взгляда»; Альтернатива сработала отлично. На самом деле это могло быть исправлено в самой последней версии, но я не стал менять тестируемый документ.
- Вопросы прозрачности и краткое описание проблем. При работе с редактором Fast Report (и при просмотре его превью) объекты легко перекрываются. Вы не видите этого из-за непрозрачности объекта. При экспорте в PDF перекрывающиеся объекты каким-то образом умудрялись «распечатать» контуры, и это явно выглядело некрасиво. Мое исправление: уделите больше внимания этим объектам, убедитесь, что они не перекрываются, или убедитесь, что они не генерируют контуры, если они не должны быть видны.
Также убедитесь, что вы тестируете с помощью ADOBE Reader на любой из указанных платформ. Если он работает с программой чтения Adobe, но не работает с другими программами чтения, возможно, в сторонней программе чтения есть ошибка!
Изменить : Здесь (ссылка) сгенерированный образец PDF-документа. моим приложением Fast Reports. Я понятия не имею, какие документы вы создаете, но в моей книге это очень сложный документ. Обратите внимание на диагональную линию, которая начинается там, где заканчиваются данные таблицы, обратите внимание на встроенные изображения (штрих-код, штамп, подпись).
Я открыл этот документ на следующих мобильных устройствах:
- iPad, работающий под управлением iOS: документ отображается на 90% нормально. Изображения вообще не отображаются, но они не важны для моего документа (и, скорее всего, это проблема читателя iOS). Все причудливые цветные линии и закругленные углы переданы правильно. Некоторый текст не отображается должным образом, и я почти уверен, что он не отображался, потому что «блок», содержащий его, слишком мал для содержимого. Скорее всего, это происходит потому, что я не вставлял шрифты TTF в PDF, а шрифт Apple в iOS не полностью соответствовал шрифту Microsoft, который использовался в Windows.
- Samsung Galaxy S2 под управлением Android 2.3: документ отображается на 100% правильно.
- Samsung Something (??), работающий под управлением Windows Mobile 6.5 и FoxReader: документ является полной тарабарщиной: появлялись картинки, но расстояние между буквами было настолько искажено, что их невозможно было прочитать. Я виню читателя, это не Acrobat и, наверное, хотел быть «умным». И это сломало мою кодировку текста, потому что мой текст не английский.
О формате PDF: документ называется PDF, если он соответствует стандарту. Вот несколько Википедии информация об этом. Теоретически PDF-документ должен отображаться точно так же, как вы на него смотрите, но есть силы, которые могут противодействовать этому:
Читайте также: