1

PDFファイルを開いてコンテンツをテキストファイルに書き込むと、テキストファイルのコンテンツが台無しになります。エンコーディングのせいだと思います。私が理解していることから、JVMはデフォルトの文字セットをに設定しますCp1252(Windows XPで実行しているため)。デフォルトの文字セットを変更しましたが、結果がありません(System.setProperty("file.encoding", "ISO-8859-1");

  • ITextを使用しようとしましたが、結果のコンテンツに発音区別符号が含まれる文字がいくつか欠落しています。

何か案は?

4

7 に答える 7

4

iTextがすべての文字を正しく読み取らない理由は、フォントに使用されているエンコーディングが原因である可能性があります。次のようにフォントを宣言できます。

BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);

ここで、BaseFont.CP1252は使用されるエンコーディングです。一部のフォントは、すべてのタイプのエンコーディングをサポートしているわけではないことに注意してください。

于 2009-11-10T10:18:41.837 に答える
2

iTextヘルパークラスを使用すると、PdfTextExtractorが正常に機能するはずです。ファイルをディスクに書き込むときに、正しいエンコーディングを使用していることを確認してください。

OutputStreamWriter out = new OutputStreamWriter( new FileOutputStream(file),"ISO-8859-1") );
于 2009-11-10T11:55:38.377 に答える
2

JavaPDFを試すことができます。それはあなたが仕事をするためのAPIを持っています。extractTextFromPage(int pageIndex)PDFReaderクラスからメソッドを呼び出すことができます。

于 2009-11-10T10:09:51.707 に答える
1

iTextはPDFを最初から作成するためのAPIですが、既存のファイルを読み取って編集するには、次のリンクを参照して くださいhttp://www.lowagie.com/iText/

于 2009-11-10T10:03:15.103 に答える
1

専用のパッケージを使用する必要があります。私が使用した2つは、pdftotext(http://en.wikipedia.org/wiki/Pdftotext)とPDFBox(http://incubator.apache.org/pdfbox/)です。一部のPDF書き込みツールは品質が低く、生成されるPDFも低いため、パッケージを使用しても、常に成功を保証できるとは限りません。

于 2009-11-10T10:33:27.463 に答える
1

PDFTextStreamライブラリは、発音区別符号、およびUnicode標準で定義されているすべての文字セット(水平および垂直の両方の書き込みモードでの中国語、日本語、および韓国語の文字を含む)の包括的なサポートを提供します。他のツールでは抽出されない場合に、発音区別符号を適切に抽出することがわかる場合があります。

文字をテキストに抽出したときに、AcrobatなどのPDFリーダーで表示した場合と同じように表示されない場合があります。これは、問題のテキストが画像ベースを使用してレンダリングされた場合に最もよく発生します。フォント(明らかにテキストに直接変換されず、適切なアクセント付き文字を取得するためにOCRプロセスが必要になります)。

于 2009-12-07T14:05:52.917 に答える
0

PDFはバイナリファイルであるため、テキストファイルとして読み取ることはできません。PDFコンテンツを読むには、サードパーティのライブラリを探す必要があります。

于 2009-11-10T09:51:09.150 に答える