TypeScript Ready
Full type definitions for options, parsed elements, and security controls.
Generate formatted PDFs from Markdown in browser or Node.js.
npm install jspdf-md-renderer jspdf jspdf-autotable markedimport { jsPDF } from 'jspdf'
import { MdTextRender } from 'jspdf-md-renderer'
const doc = new jsPDF({ unit: 'mm', format: 'a4' })
const result = await MdTextRender(
doc,
'# Hello World\n\nRendered with **jspdf-md-renderer**!',
{
page: { margin: { top: 20, right: 20, bottom: 20, left: 20 } },
font: { regular: { name: 'helvetica', style: 'normal' } },
},
)
if (result.warnings.length) console.warn(result.warnings)
doc.save('output.pdf')The content area is derived from the document's own page size, so the same options work on any format. See Page Geometry.
await MdTextRender(doc, markdown, {
...options,
components: {
hr: (ctx) => {
ctx.doc.setFillColor('#E2E8F0')
ctx.doc.rect(ctx.x, ctx.y, ctx.maxWidth, 0.6, 'F')
ctx.store.updateY(5, 'add')
},
},
})See Component Overrides.
await MdTextRender(doc, markdown, {
...options,
security: {
enabled: true,
violationMode: 'skip',
allowedLinkProtocols: ['https:', 'mailto:'],
allowedImageProtocols: ['https:'],
blockLocalhost: true,
blockPrivateIPs: true,
maxMarkdownLength: 500_000,
},
})