More languages
Some test text!
More languages
Sample JavaScript code for using PDFTron SDK to traverse the page display list using ElementReader. Learn more about our JavaScript PDF Library and PDF Parsing & Content Extraction Library.
Get Started Samples DownloadTo run this sample, get started with a free trial of Apryse SDK.
//---------------------------------------------------------------------------------------
// Copyright (c) 2001-2023 by Apryse Software Inc. All Rights Reserved.
// Consult legal.txt regarding legal and license information.
//---------------------------------------------------------------------------------------
const { PDFNet } = require('@pdftron/pdfnet-node');
const PDFTronLicense = require('../LicenseKey/LicenseKey');
((exports) => {
exports.runElementReaderTest = () => {
const ProcessElements = async(reader) => {
// Read page contents
for (let element = await reader.next(); element !== null; element = await reader.next()) {
const temp = await element.getType();
switch (temp) {
case PDFNet.Element.Type.e_path: // Process path data...
{
const data = await element.getPathData();
/* eslint-disable no-unused-vars */
const operators = data.operators;
const points = data.points;
/* eslint-enable no-unused-vars */
}
break;
case PDFNet.Element.Type.e_text: // Process text strings...
{
const data = await element.getTextString();
console.log(data);
}
break;
case PDFNet.Element.Type.e_form: // Process form XObjects
reader.formBegin();
await ProcessElements(reader);
reader.end();
break;
default:
}
}
};
const main = async() => {
console.log('-------------------------------------------------');
console.log('Sample 1 - Extract text data from all pages in the document.');
console.log('Opening the input pdf...');
const ret = 0;
// Relative path to the folder containing test files.
const inputUrl = '../TestFiles/';
const doc = await PDFNet.PDFDoc.createFromFilePath(inputUrl + 'newsletter.pdf');// await if there is ret that we care about.
doc.initSecurityHandler();
// eslint-disable-next-line no-unused-vars
const pgnum = await doc.getPageCount();
const pageReader = await PDFNet.ElementReader.create();
const itr = await doc.getPageIterator(1);
// Read every page
for (itr; await itr.hasNext(); itr.next()) {
const curritr = await itr.current();
pageReader.beginOnPage(curritr);
await ProcessElements(pageReader);
pageReader.end();
}
console.log('Done.');
return ret;
};
PDFNet.runWithCleanup(main, PDFTronLicense.Key).catch(function(error){console.log('Error: ' + JSON.stringify(error));}).then(function(){return PDFNet.shutdown();});
};
exports.runElementReaderTest();
})(exports);
// eslint-disable-next-line spaced-comment
//# sourceURL=ElementReaderTest.js