Skip to main content

Supported Features

In pdfme, the following elements can be rendered.
For elements that are not supported, you can add your own rendering process using the plugin mechanism.

Currently Supported

info

For using schemas other than the Text schema, please refer to the following documentation.
Using Schemas from @pdfme/schemas

Dynamic Layout and Page Breaks

Some schemas can reflow their height before rendering. Text and Multivariable Text support this through overflow: "expand", while List and Table use dynamic layout for long content and page breaks.

Dynamic layout and automatic page breaks require a blank basePdf object, such as { width: 210, height: 297, padding: [10, 10, 10, 10] }. When basePdf is custom PDF data, pdfme keeps the original pages fixed and does not reflow schemas across pages. In the Designer, overflow: "expand" is disabled for Text and Multivariable Text when a custom basePdf is used.

The Designer canvas shows the authored schema boxes. Reflow is applied in Preview, Form, Viewer, and PDF generation.

Text (text)

  • Style-related
    • Font Size
    • Letter Spacing
    • Text Align
    • Vertical Align
    • Line Height
    • Text Color
    • Background Color
    • Border Color
    • Border Width
    • Padding
    • Underline
    • Strikethrough
  • Font-related
    • TrueType fonts (TTF & TTC)
    • OpenType fonts with PostScript or TrueType outlines (TTF, OTF, & OTC)
    • Support for CJK (Chinese, Japanese, Korean) fonts
    • Embedding and subsetting of fonts
    • Support for multiple fonts and fallback fonts
    • Dynamic Font Sizing
      • Detailed options for Min, Max, Fit
  • Overflow
    • Visible: keeps the schema's authored height and allows overflowing text to remain visible
    • Expand: measures the rendered text, grows the schema height, pushes following schemas down, and splits long text across pages when blank basePdf is used
    • Expand is grow-only and does not shrink below the authored height
    • Expand cannot be combined with Dynamic Font Sizing; when Expand is active, the normal Font Size is used for measuring and rendering
  • Text Format
    • Plain text
    • Inline Markdown (**bold**, *italic*, ***bold italic***, ~~strikethrough~~) with automatic font variant fallback
  • Text box styling
    • Background, border, and padding are rendered as the schema box, including when the text content is empty

Multivariable Text (multiVariableText)

  • As per text, but supporting 0 to n variables in a single text field
  • Inline Markdown is supported in the template text while variable values are rendered as literal strings
  • Supports the same overflow: "expand" behavior as Text after variable values are resolved
  • Split Multivariable Text chunks remain editable for variable values in Form mode. Static inline-markdown text remains read-only.

Shape

  • Line (line)
    • Style-related
      • Color
  • Rectangle (rectangle)
    • Style-related
      • Border Width
      • Border Color
      • Color
      • Radius
  • Ellipse (ellipse)
    • Style-related
      • Border Width
      • Border Color
      • Color

Graphics

  • Image (image)
    • Formats
      • JPEG
      • PNG
      • PDF (embed pdf inside pdf)
  • SVG (svg)

Barcodes

  • Various types
    • qrcode
    • japanpost
    • ean13
    • ean8
    • code39
    • code128
    • nw7
    • itf14
    • upca
    • upce
    • gs1datamatrix
    • pdf417
  • Style-related

Table (table)

Details: Tables with Dynamic Data

  • Style-related
    • Table
      • Border Width
      • Border Color
    • Header / Body
      • Font Name
      • Font Size
      • Letter Spacing
      • Text Align
      • Vertical Align
      • Line Height
      • Text Color
      • Border Color
      • Background Color
      • Border Width
      • Padding
    • Column
      • Text Align

List (list)

  • List Style
    • Bullet
    • Ordered (numbered)
  • Layout
    • Marker Width
    • Marker Gap
    • Indent Size (for nested items)
    • Item Spacing
  • Dynamic height with automatic page breaking for long lists
  • Dynamic layout requires a blank basePdf object
  • Inherits text styling options (font, size, color, alignment, etc.) from the Text schema
note

__splitRange is internal metadata used by pdfme while splitting Text, Multivariable Text, List, and Table schemas across pages. Template authors usually should not set or edit it directly.

Select (select)

  • Options
  • Style-related
    • Font Name
    • Font Size
    • Letter Spacing
    • Text Align
    • Vertical Align
    • Line Height
    • Text Color
    • Background Color

Date (date) / Time (time) / DateTime (dateTime)

  • Date Format
  • Style-related
    • Font Name
    • Font Size
    • Letter Spacing
    • Text Align
    • Text Color
    • Background Color

Radio Button (radioGroup) / Check Box (checkbox)

  • Style-related
    • Color

Planned Support

Custom Feature Requests

While pdfme is an open-source project released under the MIT License, we are open to considering custom feature additions for a fee.
If you are willing to pay, we can evaluate and implement your requested features.
Please note that any additional functionality will always be released as open source. If this approach works for you, please contact us.