Node.jsで、「pdf-parse」を利用してPDFからテキストを抽出してみました。
※この方法だとファイルによっては文字化けする事がありました。汎用性を上げるならOCRの方がよいです。
PDFをOCRでテキスト変換してみた(Cloud Vision)
はじめに
Node.jsでPDFからtextを抽出したかったので、調べたところ「pdf-parse」というパッケージが見つかったので使ってみました。
インストール
|
|
Node.jsのコード
npm記載のコードのファイル名を変えるだけです。
https://www.npmjs.com/package/pdf-parse#basic-usage---local-files
const fs = require('fs');
const pdf = require('pdf-parse');
const pdf_filename = '000017316.pdf'
let dataBuffer = fs.readFileSync(pdf_filename);
pdf(dataBuffer).then(function (data) {
// number of pages
console.log(data.numpages);
// number of rendered pages
console.log(data.numrender);
// PDF info
console.log(data.info);
// PDF metadata
console.log(data.metadata);
// PDF.js version
// check https://mozilla.github.io/pdf.js/getting_started/
console.log(data.version);
// PDF text
console.log(data.text);
});
出力例
115
115
{
PDFFormatVersion: '1.5',
IsAcroFormPresent: false,
IsXFAPresent: false,
Creator: 'Microsoft® Word 2013',
Producer: 'Microsoft® Word 2013',
CreationDate: "D:20160127112200+09'00'",
ModDate: "D:20160127112200+09'00'"
}
null
1.10.100
~~ 中略 ~~
はじめに
3
本書の内容および位置付け
本書は、脆弱性関連情報流通の基本枠組みである「情報セキュリティ早期警戒パートナーシップ」の
「受付・分析機関」であるIPAにおいて、実際に脆弱性と判断している問題を主に取り上げています。
本書は3章で構成しています。
第1章では、「ウェブアプリケーションのセキュリティ実装」として、SQLインジェクション、OSコマンド・
インジェクションやクロスサイト・スクリプティング等11種類の脆弱性を取り上げ、それぞれの脆弱性で発
生しうる脅威や特に注意が必要なウェブサイトの特徴等を解説し、脆弱性の原因そのものをなくす根本
的な解決策、攻撃による影響の低減を期待できる対策を示しています。
※使用したPDFはこちらです。
IPA「安全なウェブサイトの作り方」
https://www.ipa.go.jp/security/vuln/websecurity.html
備考
先日、Pythonでも同様の事を行っています。
こちらのNode.jsのパッケージの方が使用感が良かったです。
動作が早く、PDFの文書情報(出力例の上の部分)も簡単に抜き出せました。
※抽出結果の詳細な比較はできていませんが。
多数のPDFを処理したいのもあり、こちらのパッケージを使っていく予定です。
(元々勉強のためにNode.jsを使いたかったですし)