HTML テンプレート
このガイドの内容
このガイドでは、単一のレンダリングの手順を説明します。 HTML 請求書 で n8n 使用 invoice_sample_1.html そして invoice_sample_data_1.jsonテンプレートは 口ひげ構文 ({{recipient.name}}、 {{#each subInfo}}) HTML は のみ 生のマークアップを貼り付けることをサポートするテンプレートタイプ HTML コード出力は HTML のみ (メール本文やウェブプレビューに最適です。)
始める前に
invoice_sample_1.html ネストされたパスを含む完全な請求書レイアウトです({{recipient.postalAddress.street1}})と項目ループ({{#each subInfo}}パスはJSON構造と完全に一致する必要があります。invoice_sample_data_1.json (推奨)、 test.xml、 または テスト.csv。 JSON ネストされたオブジェクトと サブ情報 配列。 CSV フィールドをフラット化し、1行につき1行を使用します。サンプルファイルパック
以下の4つのファイルをすべてダウンロードしてください。 HTML テンプレートに加え、同じ請求書内容を持つ3種類のデータ形式。
サンプルファイルの内容
テンプレートレイアウト(invoice_sample_1.html)
サンプルはスタイル付きです HTML 請求書 (表、ロゴ、 PDF4me 販売者ブロック)。動的セクション:
| ドキュメントセクション | 静的コンテンツ(テンプレートに固定) | 口ひげのプレースホルダー(データから入力) |
|---|---|---|
| 受取人の住所 | (レイアウトのみ) | {{recipient.name}}、 {{coText}}、 {{recipient.postalAddress.*}} |
| 販売者ブロック | PDF4meチューリッヒ、pdf4me.com | (静的) |
| 購入者/配達 | 購入者ラベル | {{buyer.name}}、 {{coTextDelivery}}、 {{buyer.postalAddress.*}} |
| 請求書メタ | 支払期日、請求書番号、発行日ラベル | {{dueDate}}、 {{invoiceNumber}}、 {{issuedOn}} |
| 明細項目表 | 製品、期間、数量、価格、VAT、合計のヘッダー | {{#each subInfo}} … {{plan}}、 {{quantity}}、 {{vat}}、 {{totalPrice}} |
| 期間列 | (請求書1枚につき1つの範囲) | {{periodStart}} - {{periodEnd}} |
| 合計行数 | 合計金額ラベル | {{totalAmount}} |
HTML テンプレートの使用 {{fieldName}} そして {{object.nestedKey}}繰り返し項目 {{#each subInfo}} … {{/each}}これは、Word テンプレートとは異なり、 <<[fieldName]>>. 参照 HTML テンプレート設定ガイドその他のパターンはこちら。
HTML コード 有効なのは、 テンプレートファイルの種類 は HTMLWord、PDFフォーム、メールマージ、またはGoogleドキュメントの場合は、バイナリデータを使用します。 Base64、 または URLその代わり。
すべてのデータファイルにわたるフィールドマッピング
| HTML placeholder | JSON path (invoice_sample_data_1.json) | XML element (test.xml) | CSV column (test.csv) | Sample value |
|---|---|---|---|---|
{{recipient.name}} | recipient.name | Recipient/Name | recipient_name | Test AG |
{{coText}} | coText | CoText | coText | cotext |
{{recipient.postalAddress.street1}} | recipient.postalAddress.street1 | Recipient/PostalAddress/Street1 | recipient_street1 | Test Street1 |
{{recipient.postalAddress.street2}} | recipient.postalAddress.street2 | Recipient/PostalAddress/Street2 | recipient_street2 | Test Street2 |
{{recipient.postalAddress.zipCode}} {{city}} | recipient.postalAddress.zipCode, .city | Recipient/PostalAddress/ZipCode, City | recipient_zipCode, recipient_city | 8000 Zurich |
{{recipient.postalAddress.country}} | recipient.postalAddress.country | Recipient/PostalAddress/Country | recipient_country | Switzerland |
{{buyer.name}} | buyer.name | Buyer/Name | buyer_name | buyer name |
{{coTextDelivery}} | coTextDelivery | CoTextDelivery | coTextDelivery | Delivery text |
{{buyer.postalAddress.street1}} | buyer.postalAddress.street1 | Buyer/PostalAddress/Street1 | buyer_street1 | Test Street1 |
{{buyer.postalAddress.street2}} | buyer.postalAddress.street2 | Buyer/PostalAddress/Street2 | buyer_street2 | Test Street2 |
{{dueDate}} | dueDate | DueDate | dueDate | 2025-04-30 |
{{invoiceNumber}} | invoiceNumber | InvoiceNumber | invoiceNumber | 123456 |
{{issuedOn}} | issuedOn | IssuedOn | issuedOn | 2025-04-01 |
{{periodStart}} - {{periodEnd}} | periodStart, periodEnd | PeriodStart, PeriodEnd | periodStart, periodEnd | 2025-03-01 to 2025-03-31 |
{{#each subInfo}} {{plan}} | subInfo[].plan | SubInfo/Item/Plan | plan | PDF4me base 1000 |
{{quantity}} | subInfo[].quantity | SubInfo/Item/Quantity | quantity | 1 |
{{vat}} | subInfo[].vat | SubInfo/Item/Vat | vat | 2.83 |
{{totalPrice}} | subInfo[].totalPrice | SubInfo/Item/TotalPrice | totalPrice | 37.83 |
{{totalAmount}} | totalAmount | TotalAmount | totalAmount | 124.31 |
サンプル JSON 含まれる 二 オブジェクト subInfo (PDF4me 基本料金1000ドル、通話パッケージ料金2000ドル)。 {{#each subInfo}} ブロック HTML アイテムごとにテーブルセルの行を1つレンダリングします。
ワークフローの概要
最速のテスト:ペースト HTML そして JSON 直接 PDF4me ノード(ファイルノードは不要)。
Manual Trigger → PDF4me Generate Document (Single) → (optional) Send Email / Write Binary File
| ステップ | n8n ノード | 目的 |
|---|---|---|
| 1 | 手動トリガー | ワークフローをオンデマンドで開始 |
| 2 | PDF4me → ドキュメント生成(単一) | ペースト HTML コード + JSON テキスト、出力レンダリング HTML |
| 3 | メールを送信する または バイナリファイルを書き込む (任意) | 配達または保存 generated_document_output.html |
/generate-document-single-full-html.png)
ターゲット構成: 貼り付け済み HTML コード + JSON で 文書データテキスト + HTML 出力
ステップ1:サンプルファイルをダウンロードする
- ダウンロード
invoice_sample_1.htmlそしてinvoice_sample_data_1.jsonから サンプルファイルパック その上。 - 両方のファイルをテキストエディタで開き、内容全体をコピーします。 n8n ノード。
- オプションでダウンロード
test.xmlまたはtest.csvテストする XML または CSV データ型については後ほど。
ステップ2: n8n ワークフロー
- で n8n新しいワークフローを作成します。
- 追加する 手動トリガー ノード。
- 追加 PDF4me → ドキュメント生成(単一) トリガー作動後。
- 接続 PDF4me 資格情報。
生産には、 バイナリファイルを読み込む ノードの代わりに HTML コード(参照) 代替テンプレート入力 下に)。
ステップ3: HTML テンプレート (HTML コード)
開く PDF4me ノードを設定し、テンプレートフィールドを設定します。
| 分野 | 価値 |
|---|---|
| テンプレートファイルの種類 | HTML |
| 出力タイプ | HTML (唯一の選択肢) HTML テンプレート) |
| テンプレートファイル入力タイプ | HTML コード |
| テンプレートファイル名 | invoice_sample_1.html |
| HTML コード | 貼り付ける 全体 内容 invoice_sample_1.html |
スニペットに以下が省略されている場合 <html> または <head>ノードはそれを基本的な HTMLシェルが自動的に実行します。サンプルファイルは完全なドキュメントなので、そのまま貼り付けてください。
ステップ4:ドキュメントデータの設定(JSON)
| 分野 | 価値 |
|---|---|
| ドキュメントデータ入力タイプ | 文章 |
| 文書データタイプ | JSON |
| 文書データテキスト | 内容全体を貼り付ける invoice_sample_data_1.json (下記のブロックを参照) |
{
"recipient": {
"name": "Test AG",
"postalAddress": {
"street1": "Test Street1",
"street2": "Test Street2",
"zipCode": "8000",
"city": "Zurich",
"country": "Switzerland"
}
},
"coText": "cotext",
"buyer": {
"name": "buyer name",
"postalAddress": {
"street1": "Test Street1",
"street2": "Test Street2"
}
},
"coTextDelivery": "Delivery text",
"dueDate": "2025-04-30",
"invoiceNumber": "123456",
"issuedOn": "2025-04-01",
"subInfo": [
{
"plan": "PDF4me base 1000",
"quantity": 1,
"price": 35,
"vat": 2.83,
"totalPrice": 37.83
},
{
"plan": "Call Package 2000",
"quantity": 1,
"price": 80,
"vat": 6.48,
"totalPrice": 86.48
}
],
"totalAmount": 124.31,
"periodStart": "2025-03-01",
"periodEnd": "2025-03-31"
}
コアノード設定(概要)
| 分野 | 価値 | 注記 |
|---|---|---|
| 接続するための認証情報 | あなたの PDF4me 資格情報 | 得る API 鍵 |
| リソース | Generate | |
| 操作の生成 | ドキュメント生成(単一) | |
| バイナリデータ出力名 | data (デフォルト) | 出力は HTML このバイナリプロパティでは |
ステップ 5: 実行して検証する HTML
- クリック ワークフローを実行する。
- 開く PDF4me ノード出力。 バイナリオープンな物件
data(generated_document_output.html) - 発行された請求書に以下の内容が記載されていることを確認してください。
- 受賞者 → Test AG、cotext、Test Street 1/2、8000 チューリッヒ、スイス
- 買い手 → 購入者名、配送テキスト、テストストリート1/2
- 請求書メタ → 支払期限 2025-04-30、請求書番号 123456、発行日 2025-04-01
- 明細項目 → PDF4me 基本料金1000と通話パッケージ2000(数量とVAT込み)
- 合計残高 → 124.31
プレースホルダーが空白で表示される場合は、口ひげのパスをあなたの JSON。 recipient.postalAddress.street1 テンプレートでは、データにも同じネスト構造が必要です。
ステップ6:出力結果を送信または保存する(オプション)
メール送信: 地図 PDF4me バイナリ data として HTML 本体(有効にする) HTML メール)。
バイナリファイルを書き込む:
| 分野 | 価値 |
|---|---|
| ファイル名 | invoice-output.html |
| データプロパティ名 | data |
| 出力パス | フォルダー n8n ファイルを書き込む必要があります |
代替テンプレート入力: ロード HTML ファイルから
貼り付けたくない場合は HTML ノードへ:
- 追加 バイナリファイルを読み込む 前に PDF4me そしてそれを指して
invoice_sample_1.html。 - で PDF4me セット テンプレートファイル入力タイプ に バイナリデータ、 テンプレートバイナリプロパティ に
data、 テンプレートファイル名 にinvoice_sample_1.html。 - 保つ ドキュメントデータ入力タイプ として 文章 そして貼り付け JSON ステップ4と同様です。
また、 .html 公の場で URL そして使用する テンプレートファイル入力タイプ: URL と テンプレートファイル URL。
代替データ形式
選択肢A: JSON バイナリファイルとして(invoice_sample_data_1.json)
- 追加 バイナリファイルを読み込む のために JSON ファイル (または マージ テンプレートがバイナリの場合、ノードも必要になります。
- セット ドキュメントデータ入力タイプ に バイナリデータ、 文書データタイプ に JSON、 文書バイナリプロパティ データフィールドに、 ドキュメントデータファイル名 に
invoice_sample_data_1.json。
選択肢B: XML (test.xml)
セット 文書データタイプ に XML そして、 test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Invoice>
<Recipient>
<Name>Test AG</Name>
<PostalAddress>
<Street1>Test Street1</Street1>
<Street2>Test Street2</Street2>
<ZipCode>8000</ZipCode>
<City>Zurich</City>
<Country>Switzerland</Country>
</PostalAddress>
</Recipient>
<CoText>cotext</CoText>
<Buyer>
<Name>buyer name</Name>
<PostalAddress>
<Street1>Test Street1</Street1>
<Street2>Test Street2</Street2>
</PostalAddress>
</Buyer>
<CoTextDelivery>Delivery text</CoTextDelivery>
<DueDate>2025-04-30</DueDate>
<InvoiceNumber>123456</InvoiceNumber>
<IssuedOn>2025-04-01</IssuedOn>
<SubInfo>
<Item>
<Plan>PDF4me base 1000</Plan>
<Quantity>1</Quantity>
<Price>35</Price>
<Vat>2.83</Vat>
<TotalPrice>37.83</TotalPrice>
</Item>
<Item>
<Plan>Call Package 2000</Plan>
<Quantity>1</Quantity>
<Price>80</Price>
<Vat>6.48</Vat>
<TotalPrice>86.48</TotalPrice>
</Item>
</SubInfo>
<TotalAmount>124.31</TotalAmount>
<PeriodStart>2025-03-01</PeriodStart>
<PeriodEnd>2025-03-31</PeriodEnd>
</Invoice>
オプションC: CSV (test.csv)
セット 文書データタイプ に CSV そして貼り付け CSV 本体。サンプルには 2つのデータ行 (1人につき1つ) subInfo 行項目); ヘッダー列はフラット化された名前を使用します。 recipient_name そして plan:
recipient_name,recipient_street1,recipient_street2,recipient_zipCode,recipient_city,recipient_country,coText,buyer_name,buyer_street1,buyer_street2,coTextDelivery,dueDate,invoiceNumber,issuedOn,periodStart,periodEnd,totalAmount,plan,quantity,price,vat,totalPrice
"Test AG","Test Street1","Test Street2","8000","Zurich","Switzerland","cotext","buyer name","Test Street1","Test Street2","Delivery text","2025-04-30","123456","2025-04-01","2025-03-01","2025-03-31",124.31,"PDF4me base 1000",1,35,2.83,37.83
"Test AG","Test Street1","Test Street2","8000","Zurich","Switzerland","cotext","buyer name","Test Street1","Test Street2","Delivery text","2025-04-30","123456","2025-04-01","2025-03-01","2025-03-31",124.31,"Call Package 2000",1,80,6.48,86.48
生産ワークフローパターン
本番環境でHTMLテンプレートとデータを供給する一般的な方法Once the sample test works, replace the Manual Trigger with these patterns.
- Webhookが課金ペイロードを受信します。
- PDF4me 固定で実行 HTML コード テンプレート。
- マップウェブフック JSON に 文書データテキスト。
- メールを送信する 出力を使用する HTML メッセージ本文として。
- Googleドライブ/S3ストア
invoice_sample_1.html。 - ダウンロードノードの読み込み HTML バイナリとして。
- PDF4me: テンプレートファイル入力タイプ = バイナリデータ。
- スプレッドシートから作成されたデータまたは CRM として JSON。
- ホスト
.htmlそして.json公共の場で HTTPS URLs。 - セット テンプレートファイル入力タイプ = URL そして ドキュメントデータ入力タイプ = URL。
- バイナリファイル読み取りノードは不要です。
よくある質問
関連ガイド
- ドキュメント生成(単一)概要: すべてのパラメーター、出力フィールド、およびテンプレートタイプ
- PDF4me ワードテンプレート: 言葉
.docxと<<[field]>>タグと PDF 出力 - 生成する HTML テンプレートから Make: 同じパターンで Make