Localizar texto em Arquivo PDF
19/01/2010
0
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.
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.
Marcos Silva
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)