サポートされている機能
pdfmeでは、以下の要素をレンダリングすることができます。
サポートされていない要素については、プラグインメカニズムを使用して独自のレンダリングプロセスを追加できます。
現在サポートされている機能
テキストスキーマ以外のスキーマを使用する場合は、以下のドキュメントを参照してください。
@pdfme/schemasからのスキーマの使用
動的レイアウトとページ区切り
一部のスキーマは、描画前に高さを再計算できます。テキストと複数変数テキストは overflow: "expand" でこの挙動を利用でき、リストとテーブルは長い内容やページ区切りのために動的レイアウトを使います。
動的レイアウトと自動ページ区切りを使うには、basePdf を { width: 210, height: 297, padding: [10, 10, 10, 10] } のような blank PDF オブジェクトとして設定する必要があります。basePdf がカスタム PDF データの場合、pdfme は元のページを固定して扱うため、スキーマをページまたぎで reflow しません。Designer では、カスタム basePdf を使っている場合、テキストと複数変数テキストの overflow: "expand" は選択できません。
Designer のキャンバスでは、作成時のスキーマの box が表示されます。reflow は Preview、Form、Viewer、PDF 生成時に適用されます。
テキスト (text)
- スタイル関連
- フォントサイズ
- 文字間隔
- テキスト配置
- 垂直配置
- 行の高さ
- テキスト色
- 背景色
- 枠線の色
- 枠線の幅
- パディング
- 下線
- 取り消し線
- フォント関連
- TrueTypeフォント(TTF&TTC)
- PostScriptまたはTrueTypeアウトラインを持つOpenTypeフォント(TTF、OTF、&OTC)
- CJK(中国語、日本語、韓国語)フォントのサポート
- フォントの埋め込みとサブセット化
- 複数のフォントとフォールバックフォントのサポート
- 動的フォントサイジング
- 最小、最大、フィットのための詳細オプション
- Overflow
- Visible: スキーマ作成時の高さを保ち、はみ出したテキストも表示します
- Expand: blank
basePdfの場合に描画テキストを計測して高さを広げ、後続スキーマを押し下げ、長いテキストをページ分割します - Expand は grow-only で、作成時の高さより小さくはしません
- Expand は動的フォントサイジングと同時利用できません。Expand が有効な場合は、通常のフォントサイズを使って計測・描画します
- テキストフォーマット
- プレーンテキスト
- インラインMarkdown(
**太字**、*斜体*、***太字斜体***、~~取り消し線~~)とフォントバリアントの自動フォールバック
- テキスト box のスタイル
- 背景、枠線、パディングはスキーマの box として描画され、テキスト内容が空でも表示されます
複数変数テキスト (multiVariableText)
- テキストと同様ですが、1つのテキストフィールドで0からn個の変数をサポートします
- テンプレート本文でインラインMarkdownをサポート(変数の値はリテラル文字列として描画されます)
- 変数の値を解決した後、テキストと同じ
overflow: "expand"の挙動をサポートします - ページ分割された複数変数テキストの chunk は、Form モードでも変数値を編集できます。静的な inline-markdown テキストは read-only のままです
図形
- 線 (line)
- スタイル関連
- 色
- スタイル関連
- 長方形 (rectangle)
- スタイル関連
- 枠線の幅
- 枠線の色
- 色
- 半径
- スタイル関連
- 楕円 (ellipse)
- スタイル関連
- 枠線の幅
- 枠線の色
- 色
- スタイル関連
グラフィックス
- 画像 (image)
- フォーマット
- JPEG
- PNG
- PDF(PDF内にPDFを埋め込み)
- フォーマット
- SVG (svg)
バーコード
- 様々なタイプ
- QRコード
- 日本郵便
- EAN13
- EAN8
- CODE39
- CODE128
- NW7
- ITF14
- UPCA
- UPCE
- GS1データマトリックス
- PDF417
- スタイル関連
- バーの色
- 背景色
- テキスト色
- テキスト表示オプション(計画中のサポート)
テーブル (table)
詳細: 動的データを持つテーブル
- スタイル関連
- テーブル
- 枠線の幅
- 枠線の色
- ヘッダー / ボディ
- フォント名
- フォントサイズ
- 文字間隔
- テキスト配置
- 垂直配置
- 行の高さ
- テキスト色
- 枠線の色
- 背景色
- 枠線の幅
- パディング
- 列
- テキスト配置
- テーブル
リスト (list)
- リストスタイル
- 箇条書き(bullet)
- 番号付き(ordered)
- レイアウト
- マーカー幅
- マーカーとテキストの間隔
- インデントサイズ(ネストされた項目用)
- 項目間の間隔
- 長いリストの動的な高さ計算と自動ページ送り
- 動的レイアウトには blank
basePdfオブジェクトが必要です - フォント・サイズ・色・配置などのテキストスタイルはテキストスキーマから継承
__splitRange は、テキスト、複数変数テキスト、リスト、テーブルをページ分割するために pdfme が内部で使うメタデータです。通常、テンプレート作成者が直接設定・編集する必要はありません。
セレクト (select)
- オプション
- スタイル関連
- フォント名
- フォントサイズ
- 文字間隔
- テキスト配置
- 垂直配置
- 行の高さ
- テキスト色
- 背景色
日付 (date) / 時間 (time) / 日時 (dateTime)
- 日付フォーマット
- スタイル関連
- フォント名
- フォントサイズ
- 文字間隔
- テキスト配置
- テキスト色
- 背景色
ラジオボタン (radioGroup) / チェックボックス (checkbox)
- スタイル関連
- 色
計画中のサポート
カスタム機能リクエスト
pdfmeはMITライセンスの下でリリースされているオープンソースプロジェクトですが、有料でのカスタム機能追加を検討することも可能です。
お支払いいただける場合は、ご要望の機能を評価し実装することができます。
なお、追加された機能はすべてオープンソースとしてリリースされます。このアプローチがご希望に合う場合は、お問い合わせください。