const PDFDocument = require('pdfkit'); /** * Five-page PDF with two top-level outline entries. * @returns {Promise} */ function buildSamplePdf() { return new Promise((resolve, reject) => { const doc = new PDFDocument({ margin: 50 }); const chunks = []; doc.on('data', (chunk) => chunks.push(chunk)); doc.on('end', () => resolve(Buffer.concat(chunks))); doc.on('error', reject); doc.fontSize(18).text('Sample Book', { align: 'center' }); doc.moveDown(); doc.fontSize(12).text('A short booklet used to test outline detection.'); doc.addPage(); doc.outline.addItem('Chapter One'); doc.fontSize(16).text('Chapter One'); doc.moveDown(); doc.fontSize(12).text('The first chapter begins with a river and a long road through the valley.'); doc.addPage(); doc.fontSize(12).text('The first chapter continues across the valley until the light changes.'); doc.addPage(); doc.outline.addItem('Chapter Two'); doc.fontSize(16).text('Chapter Two'); doc.moveDown(); doc.fontSize(12).text('The second chapter starts in a city beside a harbor.'); doc.addPage(); doc.fontSize(12).text('The second chapter ends when the ship leaves the harbor.'); doc.end(); }); } module.exports = { buildSamplePdf };