Delphi как открыть pdf файл

Обновлено: 04.07.2024

Существует два основных способа организовать в программе просмотр документов в формате PDF.

  • Использование технологии ActiveX;
  • Использование специальных компонентов.

Компоненты для работы с PDF есть не во всех выпусках Delphi и чаще всего их нужно искать и устанавливать дополнительно. В тоже время, для использования ActiveX необходимо всего лишь наличие на компьютере пользователя соответствующего программного обеспечения. В данном случае Adobe Acrobat Reader (бесплатная) или Adobe Acrobat.

Работу с ActiveX можно условно разделить на два этапа.

  • Импорт библиотеки типов или компонентов;
  • Собственно, использование импортированных средств в приложении.
Импорт компонентов ActiveX

Для импорта компонентов используется команда «Component» – «Import Component» в главном меню Delphi. Сам процесс импорта реализован в виде мастера.

На первой странице мастера выбираем «Import ActiveX Control».

1я страница мастера

Далее выбираем нужный нам компонент. В данном случае 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.
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 с Delphi
активировал AcroPDF1
нанес на форму
- OpenDialog1
- AcroPDF1
- BitBtn1

на BitBtn1Click прописал

все хорошо, но файл pdf не открывается и ничего не пишет
вопрос - почему ?

// а есть ли такой файл.

чтобы узнать имя ВЫБРАННОГО файла(FileName), надо
0. при желании
OpenDialog1.Initdir:=ExtractFilePat h(application.ExeName); //начать с указанной папки
1. сначала ВЫПОЛНИТЬ диалог.
OpenDialog1.Excecute
2. по результатам выбора (вдруг мы поняли что делаем совсем не то что надо)
if OpenDialog1.Execute then
//уже можно и нужно открыть

программа — запись алгоритма на языке понятном транслятору Спасибо evg_m ! Удачного дня !
Давайте я попробую сначала вам описать проблему вопроса.
Прошу учесть что серьезно программированием я не занимался, но мне нравится иногда автоматизировать процесс. В данном случае, в связи с большим потоком писем, на которые требуется вовремя дать ответ, я решил создать программу
закинул на форму DBGrid в которую я заношу дату входящего письма, номер и тд.
И вот у меня стоит задача по номеру входящего письма его открыть ( как правило это файл pdf. и он хранится в папке ) но найти я его должен в папке, т.есть
вот заранее я его прописать не могу
ShellExecute(handle, 'open', '2.pdf', nil, nil, SW_SHOWNORMAL)
название файла выбирается фильтрацией в dbgrid
т.есть как мне сделать, чтобы вместо 2.pdf написано
допустим
var
nam:string;
..
ну и nam допустим tabN_w.asstring;
..
может быть можно наверное и через Opendialog но у меня он не открывается

var
N:string;
begin
N:=Edit1.Text;
ShellExecute(0, 'Open', PChar(N), nil, nil, SW_SHOWNORMAL); . yt jnrhsdftn

uses
. ShellApi .. поставлено

он (shellExecute) быть может и возмущается, но чтобы это понять надо анализировать КОД возврата.
ret:=ShellExecute(. );
F1 программа — запись алгоритма на языке понятном транслятору Последний раз редактировалось evg_m; 21.01.2019 в 12:53 .

Спасибо за помощь, но не пойму почему так все сложно,
вроде все понятно а не работает .. если кто может объяснить дилетанту, то заранее спасибо.. для скорости готов заплатить только скажите заранее сколько .

если .
ShellExecute(0, 'Open', '12.pdf', nil, nil, SW_SHOWNORMAL);
файл находится в каталоге программы открывается.
___________________________________ __________________________
а вот если .
var
N:string;
begin
N:='12';
ShellExecute(0, 'Open', PChar(N), nil, nil, SW_SHOWNORMAL);
то не открывается .
___________________________________ ____________________________
не открывается если и не в каталоге программы
ShellExecute(0, 'Open', 'C\2019\12.pdf', nil, nil, SW_SHOWNORMAL);


Загрузки всякие

Связь

Содержание

Конвертация RTF в PDF

OpenOffice

JODConverter can be used in many different ways

As a Java library, embedded in your own Java application As a command line tool, possibly invoked from your own scripts As a simple web application: upload your input document, select the desired format and download the converted version

Интерфейс из приложений на любом языке через Uno

PDFCreator + COM

Только Windows, годится как для desktop так и для server applications.

Create PDFs from any program that is able to print Digitally sign your PDFs to ensure that you are the author and the file has not been modified Encrypt PDFs and protect them from being opened, printed etc AutoSave files to folders and filenames based on Tags like Username, Computername, Date, Time etc. The COM interface allows to control PDFCreator and to integrate it into other applications

If you can print your document, you can convert it to PDF with our PDFCreator. And not only PDF, you can convert the document to other popular formats as well, like PNG, JPEG and TIF. You can optionally install PDF Architect, our PDF Editor. The free edition will allow you to modify pages in existing files (rotate, move and delete pages, merge documents). You can buy additional modules to edit text and even use OCR to detect text in images.

IText + Apache POI

LibreOffice

LibreOffice can convert RTF documents to PDF via command line.

Microsoft Word - Save as PDF

Извлечение текста

debenu PDF Library

GetPageText

0 = Extract text in human readable format

2 = Return a CSV string including font, color, size and position of each piece of text on the page

3 = более точный, но и более медленный алгоритм извлечения. Return a CSV string for each piece of text on the page with the following format:

Font Name, Text Color, Text Size, X1, Y1, X2, Y2, X3, Y3, X4, Y4, Text

Координаты - это 4 точки, границы текста, единицы измерения устанавливаются функцией SetMeasurementUnits , начало координат устанавливаются функцией SetOrigin . Порядок обхода точек против часовой стрелки начиная от нижнего левого угла.

4 = аналог опции 3, но возвращаются отдельные слова, упрощает поиск по словам

5 = аналог опции 3, но после каждого блока выводится ширина каждого символа

6 = аналог опции 4, но после каждой строки текста выводится ширина каждого символа

7 = опция 0 с улучшенной точностью (см. пример - прекрасно отобразил таблицу)

Читайте также: