PDF または特定部分をテキストに変換する無料 PHP API
オープンソース PHP ライブラリで、ソフトウェア開発者が PHP アプリケーション内で PDF 全体または特定ページからテキストを抽出できます。
PDF-to-Textとは何ですか?
PDFは、金融や医療から教育や法務まで、あらゆる業界でデジタル文書の標準フォーマットです。しかし、PDFから有意義なテキストコンテンツを抽出することは、ソフトウェア開発者にとって課題となり得ます。幸い、Spatie の PDF-to-Text ライブラリは、PHP 開発者にとってこの作業をシンプルかつ効率的にします。このオープンソースツールは、poppler-utils パッケージの強力な pdftotext バイナリの上に、クリーンで軽量なラッパーを提供します。ライブラリは直感的なインターフェースを備えており、数行のコードだけでテキストを抽出できます。マルチページ文書、カラム付き PDF、埋め込みフォントや画像、事前に OCR が適用された PDF(canned PDFs)など、さまざまな機能をサポートしています。
Spatie PDF-to-Text は、ソフトウェア開発者が PDF ファイルからプレーンテキストを抽出できるオープンソースの PHP ライブラリです。これは、Poppler スイートの一部であるコマンドラインユーティリティ pdftotext の PHP ラッパーとして機能します。つまり、PDF の解析に PHP ライブラリに依存せず、成熟した実績のあるバイナリツールを活用し、高速かつ高精度で動作します。ライブラリは PHP で記述されていますが、pdftotext バイナリさえ利用可能であれば、Linux、macOS、Windows などさまざまな OS でシームレスに動作します。軽量で不要なサードパーティライブラリを取り込まないため、より高速で保守が容易になり、無関係な依存関係の更新による破損リスクが低減します。
PDF-to-Textの開始方法
PDF-to-Text を実行するには、まず PHP バージョン 5.3 以上をインストールする必要があります。PDF-to-Text の最も簡単なインストール方法は Composer を使用することです。スムーズなインストールのために、以下のコマンドをご利用ください。
composerでPDF-to-Textをインストールする
composer require spatie/pdf-to-textGitコマンドでPDF-to-Textをインストールする
git clone https://github.com/spatie/pdf-to-text.git
cd dompdf/libPHP APIを使用してPDFファイルからテキストを抽出する
オープンソースの Spatie PDF-to-Text ライブラリは、設計上ミニマルで、PDF からテキストを抽出するという一つの仕事に集中し、そしてそれをうまく行います。そのシンプルさは、請求書スキャナー、学術研究ツール、法務文書プロセッサ、コンテンツ移行システムなどのカスタムソフトウェアソリューションに最適です。以下の例は、ソフトウェア開発者が PDF ファイルパスを設定するだけで、すべてのテキストコンテンツを抽出できることを示しています。また、必要に応じてバイナリへのパスをカスタマイズすることも可能です。
PHP APIを使用してPDFファイルからテキストを抽出する方法は?
use Spatie\PdfToText\Pdf;
$text = (new Pdf())
->setPdf('example.pdf')
->text();
echo $text;
$text = (new Pdf('/custom/path/to/pdftotext'))
->setPdf('report.pdf')
->text();
PHPでPDFの特定部分を抽出する
このライブラリは、pdftotext コマンドラインツールのさまざまなオプションをサポートすることで、そのパワーを活用できるようにします。つまり、テキスト抽出プロセスを特定のニーズに合わせてカスタマイズできます。例えば、元の PDF のレイアウトを保持したり、特定のページ範囲を指定したり、出力の解像度を設定したりするオプションを使用できます。以下のシンプルな例は、ソフトウェア開発者がまず layout と r オプションを設定し、次に f オプションで PDF の最初のページを指定する方法を示しています。
PHP APIでPDFテキスト抽出のさまざまなオプションを設定する方法は?
use Spatie\PdfToText\Pdf;
$text = (new Pdf())
->setPdf('table.pdf')
->setOptions(['layout', 'r 96'])
->addOptions(['f 1'])
->text();
echo $text;