Ada banyak kontrol untuk menghasilkan PDF, tetapi tidak terlalu banyak untuk penguraian. PDF Toolkit dapat melakukannya, tetapi PDF kompleks pertama yang diuji melaporkan kesalahan dan karakter Cina kacau. Versi atau metode penggunaan mungkin salah.
Saya ingat perpustakaan pdfBox dengan nama Apache yang dipanggil menggunakan java sangat berguna, jadi saya mengunduh pdfBox dan menggunakan Delphi untuk memanggil pdfBox untuk mengurai teks pdf.
Persyaratan lingkungan: lingkungan berjalan Java
Paket aplikasi pdfBox: pdfbox-app-2.0.6.jar
Baris perintah DOS digunakan di sini untuk mengurai, dan kemudian hasil yang diurai dipanggil.
Yang pertama adalah menjalankan perintah DOS:
procedure CheckResult(b: Boolean);mulai jika bukan b maka naikkan Exception.Create(SysErrorMessage(GetLastError));end;function RunDOS(const CommandLine: string): string;var HRead, HWrite: THandle; TProcessInformation; b: Boolean; sa: TSecurityAttributes; diS: THandleStream; sRet: TStrings;begin Hasil := ''; FillChar(sa, sizeof(sa), 0);//Atur untuk mengizinkan pewarisan, jika tidak, hasil keluaran tidak dapat diperoleh di bawah NT dan 2000 sa.nLength := sizeof(sa) ; sa .bInheritHandle := Benar; sa.lpSecurityDescriptor := nihil; b := CreatePipe(HRead, HWrite, @sa, 0); CheckResult(b); FillChar(StartInfo, SizeOf(StartInfo), 0); StartInfo.cb := SizeOf(StartInfo); StartInfo.wShowWindow := SW_HIDE;//Gunakan pegangan yang ditentukan sebagai pegangan file input dan output standar, gunakan metode Tampilan yang ditentukan StartInfo.dwFlags := STARTF_USESTDHANDLES atau STARTF_USESHOWWINDOW; StartInfo.hStdError := HWrite; StartInfo.hStdInput := GetStdHandle(STD_INPUT_HANDLE); //HRead; nihil, //lpProcessAttributes: PSecurityAttributes nil, //lpThreadAttributes: PSecurityAttributes Benar, //bInheritHandles: BOOL CREATE_NEW_CONSOLE, nil, nil, StartInfo, ProceInfo(b); jika inS.Size > 0 lalu mulai sRet := TStringList.Create; sRet.LoadFromStream(inS); Hasil := sRet.Text; inS.Free;
Kemudian panggil tampilan:
fungsi 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:// temp//test.pdf e://temp//testiii.txt pdfFilePath:=ExtractFilePath(sFile); pdfFileName:=ExtractFileName(sFile); txtFileName:=FAppPath+'Temp/'+pdfFileName+'.txt'; 6.jar ExtractText '+' -pengkodean utf-8 '+sFile +' '+txtFileName;AddLog(cmd);Hasil:=RunDOS(cmd);AddLog(Hasil); );akhir;
Oke, kamu sudah selesai!
Contoh mengekstrak teks PDF dengan Delphi di atas adalah semua konten yang dibagikan oleh editor. Saya harap dapat memberi Anda referensi, dan saya harap Anda mendukung Wulin.com.