Java で .doc、.docx、.pdf ファイルを読み取り、処理しようとしています。Apache POI (doc、docx 用) およびApache PDFBox (pdf 用) ライブラリを使用して単一の文字列に変換します。
テキストボックスに遭遇するまでは問題なく動作します。フォーマットが次のような場合:
段落 1
テキストボックス 1
段落 2
テキストボックス 2
段落 3
次に、出力は次のようになります:
段落 1 テキストボックス 1 段落 2 テキストボックス 2 段落 3
しかし、私が得ている出力は:
段落 1 段落 2 段落 3 テキストボックス 1 テキストボックス2
テキストボックスが必要な場所、つまり段落の間にではなく、最後に追加されているようです。この問題は、doc ファイルと pdf ファイルの両方の場合に発生します。つまり、POI と PDFBox の両方のライブラリで同じ問題が発生しています。
PDFファイルを読み取るためのコードは次のとおりです。
void pdf(文字列ファイル) は IOException をスローします { //ファイルの初期化 ファイル myFile = 新しいファイル(ファイル); PDDocument pdDoc = null; 試す { //PDF を読み込む pdDoc = PDDocument.load(myFile); //エクストラクタを作成 PDFTextStripper pdf = new PDFTextStripper(); //テキストを抽出 出力 = pdf.getText(pdDoc); } 最後に { if(pdDoc != null) //ドキュメントを閉じる pdDoc.close(); } }
doc ファイルのコードは次のとおりです。
void doc(String file) は FileNotFoundException、IOException { ファイル myFile = null; WordExtractor エクストラクタ = null ; //ファイルを初期化 myFile = 新しいファイル(ファイル); //ファイル入力ストリームを作成 FileInputStream fis=new FileInputStream(myFile.getAbsolutePath()); //ドキュメントを開く HWPFDocument document=new HWPFDocument(fis); //エクストラクタを作成 エクストラクタ = 新しい WordExtractor(ドキュメント); //ドキュメントからテキストを取得 出力 = extractor.getText(); }