Localizar texto em Arquivo PDF

19/01/2010

6

Olá amigos

Estou me batendo com uma solicitação de um cliente e não tenho tido exito em encontrar a solução. Ele tem um arquivo PDF. Minha aplicação  tem de ler neste pdf alguns nomes e informar sua localização e se possivel marcar o texto encontrado. Ja conseguir abri o pdf no form, conforme codigo abaixo, mas não consigo fazer minha aplicação ler a informação no pdf.

Grato ai

Marcos Roberto


*********************************************************
O codigo esta abaixo para quem quiser utilzar com activex. Basta importar em import type library.


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, AcroPDFLib_TLB ;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    aPDF_myPDF70                       : TAcroPDF;
    b_myPDF70Created                   : boolean;
    s_param_Document, s_param_Location : string;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
s_param_Document := Paramstr(1);
s_param_Location := ParamStr(2);

try
   s_param_Location := 'C:\pdf2';
   s_param_Document := 'PAC16-09-RS-Manual_de_Integracao_Contribuinte_v3.00-2009-03-16.PDF';
   // ShellExecute(Handle,'open', PChar('AcroRd32.exe'), PChar('/A "nameddest='+ 'NameSpringpunkt' +'" "'+'NamePDFDokument+'"'),nil, SW_NORMAL);

   aPDF_myPDF70        := TAcroPDF.Create(self);
   aPDF_myPDF70.Parent := Form1;
   aPDF_myPDF70.Align  := alclient;

   //aPDF_myPDF70.setView();

   aPDF_myPDF70.setViewScroll('Fit',10.0);

   aPDF_myPDF70.LoadFile(s_param_Document);

   if (s_param_Location >= '0') and (s_param_Location <= '9') then
     aPDF_myPDF70.setCurrentPage(strtoint(s_param_Location))
     else
       //* hier liegt das Problem. Es wird nicht ausgeführt!!
       aPDF_myPDF70.setNamedDest(s_param_Location);
       aPDF_myPDF70.



   //aPDF_myPDF70.
   b_myPDF70Created := true;

  except

    b_myPDF70Created := false;
    aPDF_myPDF70.Free;
    ShowMessage('Keine gültigen Parameter');

  end;

end;

end.
end;

end.
Responder