JavaでPDFファイルを読む方法

オフィスで働く女性

画像クレジット: Pixland / Pixland /ゲッティイメージズ

すぐに利用できるライブラリを使用してJavaでPDFファイルを読み取ることは難しくありません。 PDFファイルを読み取ると、それらのファイルのテキストを処理できるJavaプログラムを作成できます。 PDFファイルを読み取るための1つのオプションは、Apacheから入手できる無料のオープンソースPDFBoxライブラリです。 Eclipse Java開発プラットフォームは、この作業を容易にし、ダウンロードするライブラリーを管理します。 これらのJavaライブラリを利用するには、Javaプログラミングに精通している必要があります。

必要なライブラリを収集する

ステップ1

SunのWebサイトからJavaJDKをダウンロードします。 これは、実行することでシステムにインストールできる実行可能ファイルです。 バージョンは、Windows、Mac、およびLinuxで利用できます。 赤い「ダウンロード」ボタンをクリックします。 プロンプトが表示されたら、「jdk-6uxx-windows-xxx.exe」というファイルを保存します。 このファイルを保存し、ダブルクリックしてJavaインストーラーを起動します。

今日のビデオ

ステップ2

Eclipse開発システムをダウンロードし、最上位ディレクトリに解凍します。 「EclipseIDEforJavaDevelopers」を選択します。 これにより、「eclipse-java-galileo-SR2-win32.zip」のダウンロードが開始されます。 ダウンロードが完了したら、ファイルをダブルクリックして解凍します。 「C:」ルートディレクトリの場所を選択して、Eclipseを解凍します。

ステップ3

Eclipseのzipファイルを解凍して作成したディレクトリの「eclipse.exe」をダブルクリックして、Eclipseを起動します。 Eclipseシステムで、「PrintPdf」という名前のプロジェクトを作成します。 「ファイル」、「新規」、「Javaプロジェクト」の順に選択します。 表示されるダイアログボックスにプロジェクト名「PrintPdf」を入力します。 「ソースファイルとクラスファイル用に別々のフォルダを作成する」というラジオボタンが選択されていることを確認してください。 「完了」をクリックします。

ステップ4

「PrintPdf」プロジェクトに「lib」フォルダを作成します。 「PrintPdf」プロジェクトを右クリックし、「新規」、「フォルダ」の順に選択します。 「lib」という名前を入力し、「Finish」をクリックします。

ステップ5

ApacheサイトからApache "PDFBox.jar"をダウンロードし、作成したlibディレクトリにコピーします。 同じWebページで、「fontbox-nn.jar」ファイルと「jempbox-nn.jar」ファイルをダウンロードします。 いずれの場合も、そのjarファイルをクリックすると、このファイルを提供できるいくつかのサーバーの1つを選択できるページに移動します。 それぞれを選択すると、各jarファイルがダウンロードされます。 各jarファイルを作成したlibディレクトリにコピーします。

ステップ6

同じ方法でApachelog4j.jarパッケージをダウンロードし、log4j.jarファイルをディレクトリにコピーします。 Apache PDFBoxライブラリはこのApacheログライブラリを使用するため、このファイルが存在する必要があります。

ステップ7

Apache CommonsDiscoveryパッケージをzipファイルとしてダウンロードします。 zipファイルをダブルクリックし、「commons-discovery-nn.jar」を選択して、libディレクトリに解凍します。

ステップ8

Eclipseで、「lib」ディレクトリをクリックして「F5」を押します。 追加したすべてのjarファイルが表示されていることを確認してください。

ステップ9

PrintPDFプロジェクトを右クリックして、[プロパティ]を選択します。 「Javaビルドパス」を選択し、「ライブラリ」タブを選択します。 [jarの追加]をクリックして、作成したlibディレクトリに移動し、「commons-logging-nn.jar」、「fontbox-nn.jar」、「jempbox-nn.jar」、「log4j-nn.jar」を追加します。 、」および「pdfbox-nn.jar」。 「OK」をクリックします。

PDFを読むためのコードを書く

ステップ1

「PrintPDF」プロジェクトの「src」フォルダを右クリックし、「新規」と「パッケージ」を選択します。 意味のある名前を使用してパッケージを作成します。 たとえば、パッケージに「com.pdf.util」という名前を付けます。 「完了」をクリックします。

ステップ2

作成したパッケージ名を右クリックし、[新規]、[クラス]の順に選択します。 名前の付いたクラスを作成します 「PDFTextParser」 システムが作成するように、「public static voidmain ...」とマークされたチェックボックスをクリックしてください。 「メイン」メソッド。

ステップ3

「PDFTextParser」クラスの「main」メソッドを編集して、次のコードを含めます。

public static void main(String args []){PDFTextParser pdf = new PDFTextParser( "data / javaPDF.pdf")GO //結果を出力しますSystem.out.println(pdf.getParsedText())GO}

印刷するファイルは、コンストラクターでPDFTextParser( "data / JavaPDF.pdf")にスペルアウトされていることに注意してください。 それは同じくらい簡単にコマンドライン引数である可能性があります:

PDFTextParser pdf =新しいPDFTextParser(argv [0])

行く

またはGUIインターフェイスから選択します。

PDFTextParserクラスのインスタンスを作成してから、その「getParsedText」メソッドを呼び出します。

ステップ4

作成した最上位のクラス行「publicclassPDFTextParser」のすぐ下に次のコードを挿入します。

プライベートPDFParserパーサー= null GO

// PDFドキュメントからテキストを抽出します。 public PDFTextParser(String fileName){ファイルファイル=新しいファイル(fileName)

GO if(!file.isFile()){System.err.println( "File" + fileName + "は存在しません。")GO} // PDFパーサーのインスタンスを設定してみてください {パーサー=新しいPDFParser(新しいFileInputStream(ファイル))GO} catch(IOException e){System.err.println( "PDFを開くことができません パーサー。 "+ e.getMessage())GO}} // public String getParsedText(){PDDocument pdDoc = null GO COSDocument cosDoc = null;
文字列parsedText = null; 行く

{PDFTextStripper pdfStripper = new PDFTextStripper()を試してください

GO parser.parse()GO cosDoc = parser.getDocument()GO pdDoc = new PDDocument(cosDoc)GO

//すべてのページのリストを取得しますList  list = pdDoc.getDocumentCatalog()。getAllPages()

行く

//開始ページと終了ページの異なる値を選択することで//任意のページを印刷できることに注意してくださいpdfStripper.setStartPage(1); // 1-ベースのintの長さ= list.size(); //総ページ数pdfStripper.setEndPage(length); //最後のページ//選択したページのテキストを取得parsedText = pdfStripper.getText(pdDoc)

GO} catch(IOException e){System.err .println( "PDFドキュメントの解析中に例外が発生しました。" + e.getMessage())GO}最後に {try {if(cosDoc!= null)cosDoc.close()GO if(pdDoc!= null)pdDoc.close()GO} catch(IOException e){e.printStackTrace()GO} }
parsedTextGOを返す}

ステップ5

プログラムを実行します。 PDFTextParserクラスを右クリックし、[実行]、[Javaプログラム]の順にクリックします。 プログラムが実行され、コードに入力したPDFファイルのテキストコンテンツが印刷されます。

Log4j起動エラーメッセージを抑制します

ステップ1

構成ファイルを作成して、起動時に構成ファイルが見つからない場合に作成されるJavaロギングシステムのlog4jエラーメッセージを抑制します。 PrintPDFプロジェクトの「src」フォルダを右クリックし、「新規」、「ファイル」の順に選択します。 ファイルに「log4j.properties」という名前を付けます。Eclipseは、この新しいファイルに対して空の画面を表示します。

ステップ2

「log4j.properties」ファイルを表す空の画面に次の行を貼り付けます。

ステップ3

「log4j.properties」ファイルを保存します。 トップレベルの「src」ディレクトリにこのファイルが存在すると、log4j起動メッセージと些細なログメッセージが抑制されます。 log4jシステムは、実際のエラーのみを出力します。

ヒント

PDFファイルからテキストを抽出するために使用できる商用パッケージも多数ありますが、安価ではありません。