Power Automate を使用した SharePoint リストからの PDF 生成: Handlebars テンプレートと HTML から PDF への請求書ワークフロー
· 1分で読める
PDF4me ドキュメント生成 シングル これは、Handlebars HTMLテンプレートとJSONペイロードをレンダリングして完成したHTMLドキュメントを作成するPower Automateアクションです。このドキュメントは、ペアになっている「HTMLをPDFに変換」アクションによってA4サイズにページ分割されます。SharePointリストに新しい行が追加されるとフローが開始され、ComposeがJSONを組み立て、Dropboxが請求書番号にちなんだ名前の請求書PDFを保存します。プレミアムコネクタもコードも不要です。
どの財務チームもPower Automateで同じ壁にぶつかる。 ファイル変換 このアクションにはプレミアムライセンスが必要で、HTMLテンプレートには手を加えません。Adobe PDF Servicesには費用がかかります。Encodianにも費用がかかります。matthewdevaneyの人気の回避策はHTMLを完全にスキップし、Power Appsにロックします。以下のパターンは、SERPの上位10位の誰もエンドツーエンドで表示していないものです。SharePointリストの列セットがJSONペイロードになり、実際の ハンドルバーテンプレート ファイルの場所 /Shared Documents/また、無料プランのコネクタ料金では、2つのPDF4meアクションがレンダリングとページネーションを実行します。
Handlebarsテンプレートのレンダリング:PDF4meと代替サービスの比較
Power Automateのアーキテクトが請求書PDF用のコネクタを選ぶ前に必ず行う比較:
| Approach vs PDF4me | ハンドルバーの型取り? | HTMLからPDFへのページネーションツール? | コネクタ層 | 注記 |
|---|---|---|---|---|
| PDF4me(このブログ) | はい、ドキュメントを1つ生成します | はい、HTMLをPDFに変換します | 標準 | 2つの単機能アクション、プレミアムライセンスは不要 |
| Adobe PDFサービス | いいえ | はい | プレミアム | ユーザーごとの料金体系、テンプレートエンジンなし、HTMLのみ |
| エンコーダー | ネイティブテンプレート機能なし | はい | プレミアム | 人気はあるが、呼び出しごとに料金が発生する |
| matthewdevaney Power Apps ルート | Wordテンプレートのみ | 該当なし | 標準 | HTMLを完全にスキップし、Power Appsのフロントエンドに限定します。 |
ネイティブ Convert File | いいえ | Word/Excelのみ対応、HTMLは不可 | プレミアム | HTML請求書を全くレンダリングできません |
流れの概要
1. When an item is created
SharePoint trigger on the Invoices list. Fires per new row, hands every column to the flow as dynamic content.
2. Compose
Builds one JSON payload from the row: invoice, customer, items[], totals, notes. The exact shape the Handlebars template expects.
3. Get file content using path
SharePoint /Shared Documents/invoice_template.html. The Handlebars template lives beside the data, versioned in the same site.
4. PDF - Generate Document (Single)
PDF4me action. Template File Type Html (Handlebars Syntax), Document Data Type Json, Output Type Html.
5. Convert HTML to PDF
PDF4me action. A4, portrait, scale 0.8, 40px margins, print backgrounds Yes.
6. Create file
Dropbox /. File Name Title.pdf, so INV-1005 is saved as INV-1005.pdf.