最近の PDF ファイルはテキスト情報が含まれています。そのため PDF 内をテキスト検索することができるようになっています:
このテキスト部分だけを機械的に抜き出す、というのが今回紹介するテーマです。具体的には Node.js を使って PDF からテキスト情報を抜き出すプログラムを実装してみました。
Node.js の場合、PDF を扱うことのできるライブラリがいくつか存在していますが、今回はこれを使いました。日本語を含むテキストであっても正しく取り出すことができそうでした:
pdf-parse

また今回はこの公開 PDF からテキストを取り出してみます:
Kubernetesの基礎

後述のコードでは対象 PDF ファイル名を指定して実行できるようにしています。そのため、上記リンク先から同 PDF (h2-takara-3.pdf)をダウンロードしておいてください。これ以外の PDF を使って試すこともできますが、その場合もあらかじめダウンロードしておいてください。
そして具体的なコード(pdf-sample.js)は以下のようになります:
pdf-parse を使っている部分を赤字にしました。エラー処理含めてこれだけです。
では実際に実行してみます。まず実行前の準備として pdf-parse ライブラリをインストールしておきます:
そして、対象 PDF ファイル名をパラメータ指定して node コマンドで実行します。例えばプログラムコード(pdf-sample.js)と同じフォルダに PDF ファイル(h2-takara-3.pdf)を保存した場合であれば、以下のように指定して実行します:
正しく実行されると、以下のようにテキスト抽出結果がコンソール画面に表示されます:
日本語含めて正しくテキストが抽出できました。
このテキスト部分だけを機械的に抜き出す、というのが今回紹介するテーマです。具体的には Node.js を使って PDF からテキスト情報を抜き出すプログラムを実装してみました。
Node.js の場合、PDF を扱うことのできるライブラリがいくつか存在していますが、今回はこれを使いました。日本語を含むテキストであっても正しく取り出すことができそうでした:
pdf-parse

また今回はこの公開 PDF からテキストを取り出してみます:
Kubernetesの基礎

後述のコードでは対象 PDF ファイル名を指定して実行できるようにしています。そのため、上記リンク先から同 PDF (h2-takara-3.pdf)をダウンロードしておいてください。これ以外の PDF を使って試すこともできますが、その場合もあらかじめダウンロードしておいてください。
そして具体的なコード(pdf-sample.js)は以下のようになります:
//. pdf-sample.js var fs = require( 'fs' ), pdf = require( 'pdf-parse' ); if( process.argv.length > 1 ){ var filename = process.argv[2]; var buf = fs.readFileSync( filename ); pdf( buf ).then( function( data ){ var text = data.text; console.log( text ); }).catch( function( err ){ console.log( err ); }); }else{ console.log( 'Usage: $ node pdf-sample' ); }
pdf-parse を使っている部分を赤字にしました。エラー処理含めてこれだけです。
では実際に実行してみます。まず実行前の準備として pdf-parse ライブラリをインストールしておきます:
$ npm install pdf-parse
そして、対象 PDF ファイル名をパラメータ指定して node コマンドで実行します。例えばプログラムコード(pdf-sample.js)と同じフォルダに PDF ファイル(h2-takara-3.pdf)を保存した場合であれば、以下のように指定して実行します:
$ node pdf-sample ./h2-takara-3.pdf
正しく実行されると、以下のようにテキスト抽出結果がコンソール画面に表示されます:
$ node pdf-sample ./h2-takara-3.pdf
Kubernetesの基礎
InternetWeek 2018
2018年11月28日
日本アイ・ビー・エム株式会社
クラウド事業本部 高良真穂
発音/略称/Logo
綴りKubernetes
発音
koo-ber-net-ees
略称K8s
Kubernetes
12345678
クーベネティスのロゴ
K8sは一言で何ができる?
K8sは、コンテナのアプリ運用のためのOSS
1.コンテナの組み合わせ利用
2.スケールアウト
3.ロールアウト&ロールバック
4.永続ストレージ利用
5.自己修復(可用性)
6.クラスタの分割利用
7.監視&ログ分析
:
(中略)
:
© IBM Corporation
27
Kubernetesを
広めて勢力図を
変えるぞ
参道して
シェアを取りに
行くぞ!
複合環境でも
便利♪
豊富な資金力で
独走を維持するぞ
ロックインから
解放だ!
チャンス♪
K8sでクラウド・レースの展開に
変化があるかもしれない
まとめ
•Kubernetesはコンテナの運用基盤
•オンプレ&クラウドで共通のオペレーションで運用できる
•必要なインフラ機能が提供され、高効率な運用を実現
•主要クラウドベンダー、ソフトウェア企業が賛同
Kubernetes
ハンズオンへ
日本語含めて正しくテキストが抽出できました。
コメント