ritamarkarla
08-05-2013, 20:21:34
hola: estoy tratando de leer un fichero pdf para poder analizarlo, esta es una parte del codigo que estoy utilizando
gesamtstring := '';
stichwortcounter := 0;
Size := 0;
try
//Object erstellen
acrobat := CreateOleObject('AcroExch.pdDoc');
//PDF Datei in Object öffnen
Result := acrobat.Open(cxListBox1.Items[k]);
if Result = False then
begin
messagedlg('Error en fichero', mtWarning, [mbOK], 0);
Exit;
end;
for j := 0 to acrobat.GetNumPages - 1 do
begin
//Erste Seite des Dokuments aktiv setzen (first page)
PDPage := acrobat.acquirePage(j);
//Ein Highlight Object mit 2000 Elementen erzeugen
PDHili := CreateOleObject('AcroExch.HiliteList');
Result := PDHili.Add(0, 4096);
//Erzeuge eine Markierung über den ganzen Text
PDTextS := PDPage.CreatePageHilite(PDHili);
// doc := PDPage.GetDoc;
ntl := PDTextS.GetNumText;
for i := 0 to ntl - 1 do
begin
zeilen := PDTextS.GetText(i);
doc := zeilen;
// if (Length(zeilen) > 0) and (zeilen <> '') then
// memo1.Lines.Add(removecrlf(zeilen));
gesamtstring := gesamtstring + doc;
// gesamtstring := gesamtstring + removecrlf(zeilen);
//nur für statistik
Size := Size + SizeOf(zeilen);
Inc(stichwortcounter);
Application.ProcessMessages;
end;
Memo2.Lines.Add(gesamtstring);
//Wieder freigeben
pdhili := Unassigned;
pdtextS := Unassigned;
pdpage := Unassigned;
end; //for i to pagecount
except
on e: Exception do
begin
messagedlg('Error: ' + e.Message, mtError, [mbOK], 0);
Exit;
end;
end;
if Size > 1024 then
begin
zwreal := Size / 1024;
str(zwreal: 2: 1,zeilen);
end;
en la maquina donde lo corro en delphi funciona perfecto, el problema es a la hora de correrlo en otra maquina, me da un error: cadena de clase no valida, he probado hacerle un instalador con el installshield, pero no se tengo que incluir, el install shield detecta las dependencias, pero ni corriendo el instalador funciona.
espero haberme hecho entender, por favor si alguien me puede dar una mano.
gesamtstring := '';
stichwortcounter := 0;
Size := 0;
try
//Object erstellen
acrobat := CreateOleObject('AcroExch.pdDoc');
//PDF Datei in Object öffnen
Result := acrobat.Open(cxListBox1.Items[k]);
if Result = False then
begin
messagedlg('Error en fichero', mtWarning, [mbOK], 0);
Exit;
end;
for j := 0 to acrobat.GetNumPages - 1 do
begin
//Erste Seite des Dokuments aktiv setzen (first page)
PDPage := acrobat.acquirePage(j);
//Ein Highlight Object mit 2000 Elementen erzeugen
PDHili := CreateOleObject('AcroExch.HiliteList');
Result := PDHili.Add(0, 4096);
//Erzeuge eine Markierung über den ganzen Text
PDTextS := PDPage.CreatePageHilite(PDHili);
// doc := PDPage.GetDoc;
ntl := PDTextS.GetNumText;
for i := 0 to ntl - 1 do
begin
zeilen := PDTextS.GetText(i);
doc := zeilen;
// if (Length(zeilen) > 0) and (zeilen <> '') then
// memo1.Lines.Add(removecrlf(zeilen));
gesamtstring := gesamtstring + doc;
// gesamtstring := gesamtstring + removecrlf(zeilen);
//nur für statistik
Size := Size + SizeOf(zeilen);
Inc(stichwortcounter);
Application.ProcessMessages;
end;
Memo2.Lines.Add(gesamtstring);
//Wieder freigeben
pdhili := Unassigned;
pdtextS := Unassigned;
pdpage := Unassigned;
end; //for i to pagecount
except
on e: Exception do
begin
messagedlg('Error: ' + e.Message, mtError, [mbOK], 0);
Exit;
end;
end;
if Size > 1024 then
begin
zwreal := Size / 1024;
str(zwreal: 2: 1,zeilen);
end;
en la maquina donde lo corro en delphi funciona perfecto, el problema es a la hora de correrlo en otra maquina, me da un error: cadena de clase no valida, he probado hacerle un instalador con el installshield, pero no se tengo que incluir, el install shield detecta las dependencias, pero ni corriendo el instalador funciona.
espero haberme hecho entender, por favor si alguien me puede dar una mano.