Existem muitos controles para gerar PDF, mas não muitos para análise. O PDF Toolkit pode fazer isso, mas o primeiro PDF complexo testado relata um erro e os caracteres chineses estão distorcidos. A versão ou método de uso pode estar errado.
Lembrei-me que a biblioteca pdfBox chamada Apache que era chamada usando java era muito útil, então baixei o pdfBox e usei o Delphi para chamar o pdfBox para analisar o texto do pdf.
Requisitos ambientais: ambiente de execução java
Pacote de aplicativos pdfBox: pdfbox-app-2.0.6.jar
A linha de comando do DOS é usada aqui para analisar e, em seguida, os resultados analisados são chamados.
A primeira é executar o comando DOS:
procedimento CheckResult (b: Boolean);comece se não for b então aumente Exception.Create(SysErrorMessage(GetLastError));end;função RunDOS(const CommandLine: string): string;var HRead, HWrite: THandle: TStartupInfo; TProcessInformation; b: Boolean sa: TSecurityAttributes; sRet: TStrings;begin Result := ''; FillChar(sa, sizeof(sa), 0);//Definido para permitir herança, caso contrário o resultado de saída não pode ser obtido em NT e 2000 sa.nLength := sizeof(sa) ; sa .bInheritHandle := True; sa.lpSecurityDescriptor := nil b := CreatePipe(HRead, HWrite, @sa, 0); CheckResult(b); FillChar(StartInfo, SizeOf(StartInfo), 0); StartInfo.cb := SizeOf(StartInfo.wShowWindow := SW_HIDE;//Use o identificador especificado como o identificador de arquivo de entrada e saída padrão, use o método de exibição especificado StartInfo.dwFlags := STARTF_USESTDHANDLES ou STARTF_USESHOWWINDOW; StartInfo.hStdError := HWrite; StartInfo.hStdInput := GetStdHandle(STD_INPUT_HANDLE); //HRead; nulo, //lpProcessAttributes: PSecurityAttributes nulo, //lpThreadAttributes: PSecurityAttributes True, //bInheritHandles: BOOL CREATE_NEW_CONSOLE, nulo, nulo, StartInfo, ProceInfo(b); se inS.Size > 0 então comece sRet := TStringList.Create;
Em seguida, chame o display:
função TfrmPDFTool.GetPDFText (sArquivo: string): string;var cmd:string;pdfFilePath,pdfFileName,txtFileName:String;begin //java -jar pdfbox-app-2.0.6.jar ExtractText -encoding utf-8 e:// temp//test.pdf e://temp//testiii.txt pdfFilePath:=ExtractFilePath(sFile); pdfFileName:=ExtractFileName(sFile); txtFileName:=FAppPath+'Temp/'+pdfFileName+'.txt'; 6.jar ExtractText '+' -codificação utf-8 '+sArquivo +' '+txtNomeArquivo(cmd);Resultado:=RunDOS(cmd); );fim;
OK, você terminou!
O exemplo acima de extração de texto PDF com Delphi é todo o conteúdo compartilhado pelo editor. Espero que possa fornecer uma referência e espero que você apoie o Wulin.com.