Советы по Delphi


Читаем Adobe Acrobat PDF файлы из нашего приложения


Igor Nikolaev aKa The Sprite советует:

Adobe Acrobat PDF - хорошо извесный формат, который нравится многим пользователям. Давайте посмотрим, как можно заставить приложение на Delphi прочитать файл такого формата.

Совместимость: Delphi 3.x (или выше)

Итак, Вы должны быть уверены, что у вас проинсталлирован Acrobat Reader, елси таковой программы нет, то её можно скачать с www.adobe.com После этого необходимо проинсталировать типовую библиотеку для Acrobat (Project -> Import Type Library из меню Delphi) выберите "Acrobat Control for ActiveX (version x)". Где x - текущая версия библиотеки. Hажмите кнопку инсталяции. Теперь создайте новое приложение, поместите на форму проинсталлированный компонент TPDF, далее добавите OpenDialog, и в заключении кнопку, при на нажатии на которую будет вызываться процедура открытия файла:

    procedure
TForm1.Button1Click(Sender: TObject); begin
if
OpenDialog1.Execute then pdf1.src := OpenDialog1.FileName; end;

в юните PdfLib_TLB вы можете найти интерфейс класса TPdf:

    TPdf = class(TOleControl)

private FIntf: _DPdf;
function  GetControlInterface: _DPdf; protected procedure CreateControl; procedure InitControlData; override; public
function
  LoadFile(const fileName: WideString): WordBool; procedure setShowToolbar(On_: WordBool); procedure gotoFirstPage; procedure gotoLastPage;
procedure gotoNextPage;
procedure gotoPreviousPage;
procedure setCurrentPage(n: Integer);
procedure goForwardStack;
procedure goBackwardStack;
procedure setPageMode(const pageMode: WideString); procedure setLayoutMode(const layoutMode: WideString); procedure setNamedDest(const namedDest: WideString);
procedure Print;
procedure printWithDialog;
procedure setZoom(percent: Single);
procedure setZoomScroll(percent: Single; left: Single; top:

Single); procedure setView(const viewMode: WideString); procedure setViewScroll(const viewMode: WideString; offset:

Single); procedure setViewRect(left: Single; top: Single; width: Single;

height: Single); procedure printPages(from: Integer; to_: Integer); procedure printPagesFit(from: Integer; to_: Integer; shrinkToFit:

WordBool); procedure printAll;
procedure printAllFit(shrinkToFit: WordBool);
procedure setShowScrollbars(On_: WordBool);
procedure AboutBox;
property  ControlInterface: _DPdf read GetControlInterface;
property  DefaultInterface: _DPdf read GetControlInterface; published
property
 TabStop;
property  Align;
property  DragCursor;
property  DragMode;
property  ParentShowHint;
property  PopupMenu;
property  ShowHint;
property  TabOrder;
property  Visible;
property  OnDragDrop;
property  OnDragOver;
property  OnEndDrag;
property  OnEnter;
property  OnExit;
property  OnStartDrag;
property src: WideString index 1 read GetWideStringProp write
SetWideStringProp stored False; end;

в заключение можно добавить следующее: Если Вы не уверены, что у конечного пользователя Вашей программы установлен Acrobat Reader, то необходимо, чтобы приложение проверяло эту ситуацию, прежде чем будут производится различные манипуляции с компонентой TPdf. И второе, если файл PDF имеет различные связи, например с AVI файлами, то они не будут работать из Delphi.

Hадеюсь этот пример будет Вам полезен. [001471]




- Начало -