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
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
basePdfis 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
- Style-related
- Rectangle (rectangle)
- Style-related
- Border Width
- Border Color
- Color
- Radius
- Style-related
- Ellipse (ellipse)
- Style-related
- Border Width
- Border Color
- Color
- Style-related
Graphics
- Image (image)
- Formats
- JPEG
- PNG
- PDF (embed pdf inside pdf)
- Formats
- SVG (svg)
Barcodes
- Various types
- qrcode
- japanpost
- ean13
- ean8
- code39
- code128
- nw7
- itf14
- upca
- upce
- gs1datamatrix
- pdf417
- Style-related
- Bar Color
- Background Color
- Text Color
- Include text option (planned support)
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
- Table
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
basePdfobject - Inherits text styling options (font, size, color, alignment, etc.) from the Text schema
__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.