1

私はiText 5.3.3を使用しています

PDFファイルからテキストを抽出しようとしています。

私はそのようなものを使用します:

    File f (....)

    FileInputStream fis = new FileInputStream(f);

    r = new PdfReader(fis);

    String s=PdfTextExtractor.getTextFromPage(r, 1);
    System.out.print(s);

私はこれを得る:

「(...)史上初の死亡事故による危機にシンガポール航空(...)」

テキストの場合:

「(...)史上初の死亡事故による危機にシンガポール航空(...)」

または:「(...)国内のキャリアと最終的な結論は(...)の必要性を示唆している」

テキストの場合:「(...)国内のキャリアと最終的な結論は(...)の必要性を示唆している」

ご覧のとおり、「?」が表示されます。「fi」の代わりに。

4

2 に答える 2

0

「fi」は、LATIN SMALLLIGATUREFIとして知られるUnicode文字にすることができます

そのキャラクターの詳細については、こちらをご覧ください。

http://www.eki.ee/letter/chardata.cgi?ucode=FB01

これは通常、エンコーディングの問題、またはこのテキストを表示しているWebページで使用されているフォントが、ソースで「fi」がレンダリングされているフォントをデコードしない場合に発生します。

PDFリーダー文字列をUTF8エンコーディングで正規化してみてください。ブラウザのフォントでレンダリング方法がわからない場合は、Unicode文字を確認し、「fi」などの不要な文字を解析することをお勧めします。

これを行う1つの方法は、不要なUnicode文字を解析できる正規表現を作成することです。以下は例です

 //Used this to get the unicode range below : http://www.utf8-chartable.de/unicode-utf8-table.pl
                s = s.Replace(/[^\u0000-\u036F\u2000-\u2023\u2153-\u217E\u20A0-\u20B5]/g, "");

お役に立てれば。

ありがとう

于 2012-11-01T15:54:05.577 に答える
0

問題が解決しました。

.txtファイルのデフォルトのエンコーディングを変更しました。

Eclipseの場合:ウィンドウ>>一般>>コンテンツタイプ>>テキストデフォルトのエンコーディング:UTF-8

于 2012-11-02T13:17:34.460 に答える