PDF 생성을 위한 컨트롤은 많지만 PDF Toolkit에서는 이를 수행할 수 없지만 테스트된 첫 번째 복잡한 PDF에서는 오류가 보고되고 중국어 문자가 잘못되었을 수 있습니다.
java를 사용하여 호출한 Apache라는 이름의 pdfBox 라이브러리가 매우 유용했던 기억이 나서 pdfBox를 다운로드하고 Delphi를 사용하여 pdfBox를 호출하여 pdf 텍스트를 구문 분석했습니다.
환경 요구 사항: Java 실행 환경
pdfBox 애플리케이션 패키지: pdfbox-app-2.0.6.jar
여기서는 DOS 명령줄을 사용하여 구문 분석한 다음 구문 분석된 결과를 호출합니다.
첫 번째는 DOS 명령을 실행하는 것입니다.
절차 CheckResult(b: Boolean); b가 아닌 경우 시작하고 Exception.Create(SysErrorMessage(GetLastError));end;function RunDOS(const CommandLine: string): string;var HRead, HWrite: THandle; StartInfo: TStartupInfo: TProcessInformation; b: 부울; TSecurityAttributes: THandleStream; sRet: TStrings;begin Result := ''; FillChar(sa, sizeof(sa), 0);//상속을 허용하도록 설정합니다. 그렇지 않으면 NT 및 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); StartInfo.wShowWindow := SW_HIDE;//지정된 핸들을 표준 입력 및 출력 파일 핸들로 사용 지정된 표시 방법 StartInfo.dwFlags := STARTF_USESTDHANDLES 또는 STARTF_USESHOWWINDOW; StartInfo.hStdError := HWrite; StartInfo.hStdInput := GetStdHandle(STD_INPUT_HANDLE); //HRead; StartInfo.hStdOutput := HWrite; b := CreateProcess(nil, //lpApplicationName: PChar PChar(CommandLine), //lpCommandLine nil, //lpProcess속성: PSecurityAttributes nil, //lpThreadAttributes: PSecurityAttributes True, //bInheritHandles: BOOL CREATE_NEW_CONSOLE, nil, nil, StartInfo, ProceInfo); WaitForSingleObject(ProceInfo.hProcess, INFINITE); 만약에 inS.Size > 0이면 sRet := sRet.LoadFromStream(inS); Result := sRet.Free; CloseHandle(HWrite);
그런 다음 디스플레이를 호출합니다.
function TfrmPDFTool.GetPDFText(sFile: string): string;var cmd:string; pdfFilePath,pdfFileName,txtFileName:String;begin //java -jar pdfbox-app-2.0.6.jar ExtractText -encoding utf-8 e:// 온도//test.pdf e://temp//testiii.txt pdfFilePath:=ExtractFilePath(sFile); pdfFileName:=ExtractFileName(sFile); txtFileName:=FAppPath+'Temp/'+pdfFileName+'.txt' cmd:='java -jar '+FAppPath+'PDFBox-app-2.0. 6.jar ExtractText ' +' - UTF-8 인코딩 '+sFile +' '+txtFileName; 결과:=RunDOS(cmd); memTxtFile.Lines.LoadFromFile(txtFileName,TUTF8Encoding.Create); );끝;
이제 끝났습니다!
위 델파이에서 PDF 텍스트를 추출한 예시는 편집자가 공유한 내용이 모두 여러분께 참고가 되기를 바라며, Wulin.com을 응원해 주시길 바랍니다.