Node.jsを使用してPDFからデータを抽出する方法


  1. pdfreaderモジュールを使用する方法:
const PDFParser = require('pdfreader').PDFParser;
const fs = require('fs');
const pdfParser = new PDFParser();
pdfParser.on('pdfParser_dataError', errData => console.error(errData.parserError));
pdfParser.on('pdfParser_dataReady', pdfData => {
  // PDFデータの処理
  const text = pdfData.formImage.Pages[0].Texts.map(text => decodeURIComponent(text.R[0].T));
  console.log(text);
});
fs.readFile('sample.pdf', (err, pdfBuffer) => {
  if (err) throw err;
  pdfParser.parseBuffer(pdfBuffer);
});
  1. PDF.jsを使用する方法:
const pdfjsLib = require('pdfjs-dist/legacy/build/pdf.js');
const fs = require('fs');
async function extractTextFromPDF(pdfPath) {
  const data = new Uint8Array(fs.readFileSync(pdfPath));
  const loadingTask = pdfjsLib.getDocument(data);
  const pdfDocument = await loadingTask.promise;

  let textContent = '';
  for (let pageNumber = 1; pageNumber <= pdfDocument.numPages; pageNumber++) {
    const page = await pdfDocument.getPage(pageNumber);
    const content = await page.getTextContent();
    content.items.forEach(item => {
      textContent += item.str + ' ';
    });
  }

  console.log(textContent);
}
extractTextFromPDF('sample.pdf');

これらのコード例では、sample.pdfという名前のPDFファイルからテキストデータを抽出してコンソールに出力します。必要に応じて、抽出したデータを他の処理に使用することもできます。

これらの方法は、Node.jsでPDFデータを処理するための一般的な手法です。他にもさまざまなライブラリやモジュールが存在するため、要件や好みに応じて適切な方法を選択できます。