PDFJS: Alle Seiten mit async/await in NodeJS lesen
English
Deutsch
PDFJS hat ein offizielles Beispiel, das — unter anderem — alle Seiten eines PDF-Dokuments liest.
Jedoch ist ihre Promise-basierte Methode recht komplex zu verstehen und zu schreiben. Glücklicherweise gibt es einen einfacheren Weg mit async/await (welches ab NodeJS 8.x unterstützt wird).
Ich verwende die bereich-Bibliothek (bereich ist deutsch für Bereich), um ein Array von Seitenzahlen (1..numPages) zu generieren.
Installiere die erforderlichen Bibliotheken mit
install_pdfjs.sh
npm install pdfjs-dist bereichHier ist das Quellcode-Beispiel:
read_pdf_pages.js
const pdfjs = require('pdfjs-dist');
const bereich = require('bereich');
async function readPDFPages() {
const pdf = await pdfjs.getDocument('mypdf.pdf');
const numPages = pdf.numPages;
const pageNumbers = Array.from(bereich(1, numPages));
// Alle Seiten 1...numPages lesen
const promises = pageNumbers.map(pageNo => pdf.getPage(pageNo));
// Warten, bis alle Seiten gelesen wurden
const pages = await Promise.all(promises);
// Hier kannst du etwas mit den Seiten tun.
return pages;
}
readPDFPages().then(pages => {
console.log(pages)
}).catch(err => {
console.error(`Error while reading PDF: ${err}`)
})Check out similar posts by category:
Javascript, PDF
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow