CustomPdfDoc
import CustomPdfDoc from '@bbc/front-end-kit/js/pdf/CustomPdfDoc';
A ready-to-use PDF document class that extends TemplatePdfDoc. Acts as the concrete starting point for project-specific PDF generation — extend or modify this class per project rather than reaching for TemplatePdfDoc directly.
Extends TemplatePdfDoc → BasePdfDoc → PDFDocument.
Getting started
import CustomPdfDoc from '@bbc/front-end-kit/js/pdf/CustomPdfDoc';
const pdf = new CustomPdfDoc({ filename: 'my-export' });
await pdf.init();
const blob = await pdf.generate({ data: { /* your data */ }, type: 'blob' });
API
constructor(args = {})
Initialises the CustomPdfDoc instance and forwards all args to TemplatePdfDoc.
Methods
init()
Async setup hook. Calls super.init() (which sets Showpad user metadata and loads assets defined in TemplatePdfDoc), then sets this.info.Title and this.info.Subject to this.filename.
Override in a subclass to load additional fonts/images after calling super.init().
generate(args)
Stores args.data on this.data (making it available to the footer() call on pageAdded), then delegates to super.generate(args).
Parameters
args(object):data(any): The data object used to populate the PDF content. Stored asthis.data.type(string): Output format —'blob'or'url'. Forwarded toBasePdfDoc.generate().
Returns
Promise<Blob|string>
External dependencies
TemplatePdfDoc: Parent class providing page defaults, colour palette, and Showpad user metadata.