JavaでPDF内のテキスト検索をしたいとき
PDFファイルをバイナリースキャンして、文字コードとして認識できる部分を抜き出そうとしてもうまくいきません。PDFでは、テキストは文字コードのまま収容されていないのです。しかも表示される順番にテキストが収容されているわけでもありません。
PDFからテキストを抜き出すには、PDF規格を理解したうえで、テキストブロックの配置順を把握して、その順番で文字コードに置き換えます。その後に、テキスト検索や置換をする必要があります。
たいへんですね。でも通常は、これらの手順をコーディングすることはありません。PDF開発ライブラリー(SDK)に任せてしまうからです。
弊社の販売しているJava PDF開発ライブラリー(SDK)のJPedal(ジェイペダル)では、PDFファイルを指定してテキスト検索するコードを1行で書くことができます(下記)。
PDFファイルのテキスト検索のサンプルコード(JPedalを使う場合の一例)
resultsForPages = FindTextInRectangle.findTextOnAllPages("/path/to/file.pdf", "textToFind");
Java PDF開発ライブラリーの機能差・性能差に要注意
Javaで使うPDF開発ツールはフリーのものから有償のものまでありますが、内容はさまざまです。上記ではテキストを例に、PDFのファイル構造が複雑なことを紹介しましたが、PDF規格は難解なうえに肥大化しています。そのためにPDFを扱うシステム開発では、PDF規格にまつわるトラブルに出逢う可能性があります。PDF開発ツール選びでは、この点を忘れないようにしましょう。最も重要な2点を紹介します。
ひとつ目はPDF開発ツールの守備範囲です。Java PDFライブラリーの多くは、幅広いPDF規格の一部の機能だけ実装するものが多いです。さらにその機能に対応していても、PDFの過去バージョンに対応していないツールだと、古いPDFファイルを読み込めないことがあります(旧規格のPDFファイルは広く流通しています)。
ふたつ目は互換性です。PDF規格は長らく規格がゆるくて、複数の解釈ができる状況が続きました。そのため方言のようなPDFを出力するPDF開発ツールがあります。こうしたPDFファイルを読み込もうとすると、一部しか読み込めなかったり、レイアウトが崩れたりするPDF開発ツールがあります。
優秀なPDF開発ツールは、トラブルの出にくいPDFを生成します。方言や多少のエラーがあるPDFファイルでも読み込めるような配慮をしています。なかでも配置ズレは目立つので、ズレにくくするノウハウは重要視されています。
弊社の販売しているJPedalは、多機能・高性能なJava PDF開発ライブラリー(SDK)です。PDF規格のほぼすべてを満たす機能を実装しています。20年以上もPDF関連システム開発に携わる英国IDR Solutions社が開発しています。その過程で、確実に開けるPDFの生成や、方言や多少のエラーのあるPDFでも読み込むノウハウを確立しました。
Java PDF開発ライブラリー(SDK)JPedalのセールスポイント
1 | PDF規格のほぼすべてを満たす多機能、高性能 |
---|---|
2 | PDF 関連ツールを 20 年以上も開発している英国 IDR Solutions 社の製品 |
3 | 世界でも日本でも豊富な利用実績 |
4 | 日本語にしっかり対応(縦書き、ルビなど) |
5 | 日本総代理店による日本語サポート、開発元との連携サポートも提供 |
6 | 日本の企業・役所の求めるサポート品質・契約体系で提供 |
7 | 購入前に機能制限のない商品同等版での無料トライアルを提供 |
取り扱い製品について
PDF規格は複雑なうえに、過去からの積み重ねで非常にわかりにくくなっています。PDF連携ソフトウェアの開発では、英国IDRsolutions 社のPDF関連製品(変換ツール、ライブラリ、ソフトウェア部品など)を、ぜひご検討ください。
IDRsolutions はPDF関連ツールを20年以上に渡って開発・提供し続けています。PDF分野の老舗企業として、世界中の企業や公的機関にご活用いただいています。
日本では株式会社インターワークがIDRsolutions社の日本総代理店として取り扱っていますので、お気軽にご相談ください。
VIEWING PRODUCTS
PDFをHTML5やSVGに変換
PDFのフォームをHTML5に変換
SDK PRODUCTS
PDFファイルの表示、変換、抽出
多くの画像ファイル形式を読み書き、変換、操作、処理