Node.jsでPDFからデータを抽出する方法


  1. PDF.jsを使用する方法: PDF.jsはJavaScriptで記述されたオープンソースのPDFレンダリングライブラリです。これを使用すると、Node.jsでPDFからテキストデータを抽出することができます。

まず、Node.jsプロジェクトをセットアップし、pdfjs-distパッケージをインストールします。

npm install pdfjs-dist

次に、以下のコードを使用してPDFからテキストデータを抽出します。

const fs = require('fs');
const pdfjs = require('pdfjs-dist');
async function extractTextFromPDF(path) {
  const data = new Uint8Array(fs.readFileSync(path));
  const doc = await pdfjs.getDocument(data).promise;
  let text = '';
  for (let i = 1; i <= doc.numPages; i++) {
    const page = await doc.getPage(i);
    const content = await page.getTextContent();
    const pageText = content.items.map(item => item.str).join(' ');
    text += pageText;
  }
  return text;
}
const pdfPath = 'path/to/pdf/file.pdf';
extractTextFromPDF(pdfPath)
  .then(text => {
    console.log(text);
  })
  .catch(error => {
    console.error(error);
  });

このコードでは、extractTextFromPDF関数を作成し、指定されたPDFファイルからテキストデータを抽出しています。pdfPath変数には抽出したいPDFファイルのパスを指定してください。

  1. パッケージを使用する方法: Node.jsには、PDFからデータを抽出するためのさまざまなパッケージがあります。例えば、pdf-extractionpdf2jsonなどがあります。これらのパッケージを使用すると、簡単にPDFからデータを抽出することができます。

以下は、pdf-extractionパッケージを使用した例です。

まず、Node.jsプロジェクトをセットアップし、pdf-extractionパッケージをインストールします。

npm install pdf-extraction

次に、以下のコードを使用してPDFからテキストデータを抽出します。

const fs = require('fs');
const PDFExtract = require('pdf-extraction');
async function extractTextFromPDF(path) {
  const data = await fs.promises.readFile(path);
  const pages = await PDFExtract.extract(data);
  let text = '';
  pages.forEach(page => {
    page.content.forEach(content => {
      text += content.str + ' ';
    });
  });
  return text;
}
const pdfPath = 'path/to/pdf/file.pdf';
extractTextFromPDF(pdfPath)
  .then(text => {
    console.log(text);
  })
  .catch(error => {
    console.error(error);
  });

このコードでは、extractTextFromPDF関数を作成し、指定されたPDFファイルからテキストデータを抽出しています。

以上が、Node.jsでPDFからデータを抽出する方法のいくつかの例です。これらの方法を使用すると、PDFファイルからテキストなどのデータを取得することができます。