Skip to content

jspdf-md-rendererMarkdown to PDF

Generate formatted PDFs from Markdown in browser or Node.js.

jspdf-md-rendererjspdf-md-renderer

Quick Start

bash
npm install jspdf-md-renderer
ts
import { jsPDF } from 'jspdf'
import { MdTextRender } from 'jspdf-md-renderer'

const doc = new jsPDF()

await MdTextRender(doc, '# Hello World\n\nRendered with **jspdf-md-renderer**!', {
  cursor: { x: 10, y: 10 },
  page: {
    maxContentWidth: 190,
    maxContentHeight: 277,
    lineSpace: 1.5,
    defaultLineHeightFactor: 1.2,
    defaultFontSize: 12,
    defaultTitleFontSize: 14,
    topmargin: 10,
    xpading: 10,
    xmargin: 10,
    indent: 10,
  },
  font: {
    bold: { name: 'helvetica', style: 'bold' },
    regular: { name: 'helvetica', style: 'normal' },
    light: { name: 'helvetica', style: 'light' },
  },
  endCursorYHandler: (y) => console.log('Ended at Y:', y),
})

doc.save('output.pdf')

Security Example (opt-in)

ts
await MdTextRender(doc, markdown, {
  ...options,
  security: {
    enabled: true,
    violationMode: 'skip',
    allowedLinkProtocols: ['https:', 'mailto:'],
    allowedImageProtocols: ['https:'],
    blockLocalhost: true,
    blockPrivateIPs: true,
    maxMarkdownLength: 500_000,
  },
})

Released under the MIT License.