3

iTextについて質問したいのですが。PDF ファイル内のテキストの検索で問題が発生しています。

getTextfromPage()次のコード サンプルで説明されている方法を使用して、プレーン テキスト ファイルを作成できます。

/** The original PDF that will be parsed. */
    public static final String PREFACE = "D:/B.pdf";
    /** The resulting text file. */
    public static final String RESULT = "D:/Result.txt";
public void ParsePDF(String From, String Destination) throws IOException{

        PdfReader reader = new PdfReader(PREFACE);  
        PrintWriter out = new PrintWriter(new FileOutputStream(RESULT));              
        for (int i = 1; i <= reader.getNumberOfPages(); i++) {                          
         out.println(PdfTextExtractor.getTextFromPage(reader, i));  
        }
        out.flush();
        out.close();
        reader.close();

    }

String次のような結果のテキストで特定のものを見つけようとしています:

    public void FindWords(String From) {
        try{
            String ligneLue;            
            LineNumberReader lnr=new LineNumberReader(new FileReader(RESULT));
            try{                
                while((ligneLue=lnr.readLine())!=null){
                    SearchForSVHC(ligneLue,SvhcList);
                }
            }
            finally{                
                lnr.close();
            }
        }
        catch(IOException e){
            System.out.println(e);}
        }   
    public void SearchForSVHC(String Ligne,List<String> List){
        for(String CAS :List){
            if(Ligne.contains(CAS)){
                System.out.print("Yes  "+CAS);
                break;
        }}
    }

私の問題は、解析している一部の PDF がスキャンされた画像で構成されていることです。つまり、実際のテキストはなく、ピクセルだけです。

iText は光学式文字認識 (OCR) をサポートしていますか? また、フォローアップの質問として: PDF がスキャンされた画像で構成されているかどうかを判断する方法はありますか?

4

5 に答える 5

4

回答する前に、質問を非常に徹底的に編集しました。

PDF がスキャンされた画像で構成されている場合、解析する実際のテキストはなく、テキストのように見えるピクセルを含む画像だけがあります。そのようなスキャンされたページに実際に何が書かれているかを知るには OCR を実行する必要がありますが、iText は OCR をサポートしていません。

フォローアップの質問について: PDF にスキャンされた画像が含まれているかどうかを確認するのは非常に困難です。最初の特典は、ページに画像だけがあり、テキストがないことです。

ただし、画像の性質について何も知らないため (休日の写真しか含まれていない PDF を持っている可能性があります)、PDF がスキャンされたテキストのページでいっぱいのドキュメントであるかどうかを確認するのは非常に困難です (つまり、ラスタライズされたテキスト)。

于 2013-05-15T13:19:26.883 に答える
1

このサポート ケースは、iText が OCR をサポートしていないことを示しています。画像にテキストが含まれているかどうかの認識は、画像を OCR プロセッサに渡し、結果が意味のあるものかどうかを確認するのと同じくらい簡単です。

于 2013-05-15T13:18:30.460 に答える
0

iText は OCR とは何の関係もありません。スキャンした本から生成された PDF には、ページを画像、テキスト、または (視覚的なオリジナルとテキスト検索機能を維持するためによく行われるように) その両方として含めることができます。もちろん、テキストが含まれている場合は、一部の OCR が既に実行されているためです。

PDF に画像のみが含まれ、テキストが含まれていないことを検出するのは難しいことですが、単純なヒューリスティックは、テキストを抽出して (を参照)、(ほとんど) 空のテキストを返す場合に PDF が純粋な画像であると判断することです。すべての (ほとんどの) ページ。

于 2013-05-15T13:18:15.410 に答える