Ana içeriğe geç

HTML şablon

Bu kılavuz neleri kapsıyor?

Bu kılavuz, tek bir görüntünün nasıl oluşturulacağını adım adım açıklıyor. HTML fatura içinde n8n kullanarak fatura_örneği_1.html Ve fatura_örnek_veri_1.jsonŞablon şu şekilde kullanılır: bıyık sözdizimi ({{alıcı.adı}}, {{#each subInfo}}). HTML dır sadece Ham işaretleme kodunu yapıştırmayı destekleyen şablon türü HTML KodÇıktı şudur: HTML sadece (E-posta metinleri veya web önizlemeleri için idealdir).

İlgili Blog Yazıları
Bu özellik için henüz bir blog yazısı yok — yakında yayınlanacak.
Bu arada, her platforma yönelik eğitimler ve iş akışları için PDF4me bloguna göz atın.
Blogu ziyaret edin

Başlamadan Önce

HTML bıyık etiketli şablon
Örnek fatura_örneği_1.html İç içe geçmiş yollara sahip eksiksiz bir fatura düzenidir ({{alıcı.posta adresi.sokak1}}) ve bir satır öğesi döngüsü ({{#each subInfo}}Yollar, JSON yapınızla birebir eşleşmelidir.
Eşleşen veri dosyası
Kullanmak fatura_örnek_veri_1.json (tavsiye edilen), test.xml, veya test.csv. JSON iç içe nesneler ve bir altbilgi sıralamak. CSV Alanları düzleştirir ve her satır öğesi için bir satır kullanır.
PDF4me kimlik belgesi n8n
Bir tane oluşturun PDF4me kimlik belgesi n8n ve yapıştırın API Aynı tuş tüm cihazlarda çalışır. PDF4me Örneğinizdeki düğümler.

Örnek Dosya Paketi

Aşağıdaki dört dosyayı da indirin. Bir HTML Aynı fatura içeriğine sahip üç farklı veri formatı içeren şablon.

Örnek Dosyaların İçeriği

Şablon düzeni (invoice_sample_1.html)

Örnek, stilize edilmiş bir örnektir. HTML fatura (tablolar, logo, PDF4me (Satıcı bloğu). Dinamik bölümler:

Belge bölümüStatik içerik (şablona sabitlenmiş)Bıyık yer tutucu (verilerden doldurulmuştur)
Alıcı adresi(sadece yerleşim planı){{recipient.name}}, {{coText}}, {{recipient.postalAddress.*}}
Satıcı engellemesiPDF4meZürih, dev.pdf4me.com(statik)
Alıcı / teslimatAlıcı etiketi{{buyer.name}}, {{coTextDelivery}}, {{buyer.postalAddress.*}}
Fatura meta verileriSon Ödeme Tarihi, Fatura Numarası, Düzenleme Tarihi etiketlerinde{{dueDate}}, {{invoiceNumber}}, {{issuedOn}}
Satır öğeleri tablosuÜrün, Dönem, Miktar, Fiyat, KDV, Toplam başlıkları{{#each subInfo}}{{plan}}, {{quantity}}, {{vat}}, {{totalPrice}}
Dönem sütunu(Fatura başına tek aralık){{periodStart}} - {{periodEnd}}
Toplam satırToplam bakiye etiketi{{totalAmount}}

:::ipucu Bıyık sözdizimi (HTML sadece) HTML şablonlar kullanılır {{fieldName}} Ve {{object.nestedKey}}. Satır öğelerini tekrarlayın {{#each subInfo}}{{/each}}Bu, Word şablonlarından farklıdır. <<[fieldName]>>Bakınız HTML şablon kurulum kılavuzu Daha fazla desen için.

:::

:::Not HTML Kod mu yoksa dosya yükleme mi? HTML Kod yalnızca şu durumlarda geçerlidir Şablon Dosya Türü dır HTMLWord, PDF Formu, Posta Birleştirme veya Google Dokümanlar için İkili Veri kullanın. Base64, veya URL yerine. :::

Tüm veri dosyalarında alan eşlemesi

HTML placeholderJSON path (invoice_sample_data_1.json)XML element (test.xml)CSV column (test.csv)Sample value
{{recipient.name}}recipient.nameRecipient/Namerecipient_nameTest AG
{{coText}}coTextCoTextcoTextcotext
{{recipient.postalAddress.street1}}recipient.postalAddress.street1Recipient/PostalAddress/Street1recipient_street1Test Street1
{{recipient.postalAddress.street2}}recipient.postalAddress.street2Recipient/PostalAddress/Street2recipient_street2Test Street2
{{recipient.postalAddress.zipCode}} {{city}}recipient.postalAddress.zipCode, .cityRecipient/PostalAddress/ZipCode, Cityrecipient_zipCode, recipient_city8000 Zurich
{{recipient.postalAddress.country}}recipient.postalAddress.countryRecipient/PostalAddress/Countryrecipient_countrySwitzerland
{{buyer.name}}buyer.nameBuyer/Namebuyer_namebuyer name
{{coTextDelivery}}coTextDeliveryCoTextDeliverycoTextDeliveryDelivery text
{{buyer.postalAddress.street1}}buyer.postalAddress.street1Buyer/PostalAddress/Street1buyer_street1Test Street1
{{buyer.postalAddress.street2}}buyer.postalAddress.street2Buyer/PostalAddress/Street2buyer_street2Test Street2
{{dueDate}}dueDateDueDatedueDate2025-04-30
{{invoiceNumber}}invoiceNumberInvoiceNumberinvoiceNumber123456
{{issuedOn}}issuedOnIssuedOnissuedOn2025-04-01
{{periodStart}} - {{periodEnd}}periodStart, periodEndPeriodStart, PeriodEndperiodStart, periodEnd2025-03-01 to 2025-03-31
{{#each subInfo}} {{plan}}subInfo[].planSubInfo/Item/PlanplanPDF4me base 1000
{{quantity}}subInfo[].quantitySubInfo/Item/Quantityquantity1
{{vat}}subInfo[].vatSubInfo/Item/Vatvat2.83
{{totalPrice}}subInfo[].totalPriceSubInfo/Item/TotalPricetotalPrice37.83
{{totalAmount}}totalAmountTotalAmounttotalAmount124.31

Örnek JSON içerir iki nesnelerde subInfo (PDF4me (Temel 1000 ve Çağrı Paketi 2000). {{#each subInfo}} bloklarda HTML Her öğe için bir tablo hücresi satırı oluşturun.

İş Akışına Genel Bakış

En hızlı test: macun HTML Ve JSON doğrudan içinde PDF4me düğüm (dosya düğümlerine gerek yok).

Manual Trigger → PDF4me Generate Document (Single) → (optional) Send Email / Write Binary File
Adımn8n düğümAmaç
1Manuel Tetikleyiciİş akışını isteğe bağlı olarak başlatın
2PDF4me → Belge Oluştur (Tekli)Yapıştır HTML Kod + JSON Metin, oluşturulan çıktı HTML
3E-posta gönder veya İkili Dosya Yaz (isteğe bağlı)Teslim et veya kaydet generated_document_output.html
Şablon Dosya Türü HTML, Çıktı Türü HTML, Şablon Dosya Giriş Türü HTML Kodu, Belge Veri Giriş Türü Metin, Belge Veri Türü JSON ile yapılandırılmış n8n düğümü (Tekli Belge Oluştur)

Hedef yapılandırması: yapıştırıldı HTML Kod + JSON içinde Belge Verileri Metni + HTML çıktı


Adım 1: Örnek Dosyaları İndirin

  1. İndirmek invoice_sample_1.html Ve invoice_sample_data_1.json -den Örnek Dosya Paketi üstünde.
  2. Her iki dosyayı da bir metin düzenleyicide açın ve tüm içeriklerini kopyalayın. n8n düğüm.
  3. İsteğe bağlı olarak indirin test.xml veya test.csv test etmek için XML veya CSV Veri türlerine daha sonra değineceğiz.

Adım 2: Oluşturun n8n İş Akışı

  1. İçinde n8nYeni bir iş akışı oluşturun.
  2. Ekle Manuel Tetikleyici düğüm.
  3. Eklemek PDF4me → Belge Oluştur (Tekli) tetikleyiciden sonra.
  4. Bağlantınızı kurun. PDF4me kimlik belgesi.

Üretim için şunları ekleyebilirsiniz: İkili Dosyayı Oku düğüm yerine HTML Kod (bkz. Alternatif şablon girişi altında).


Adım 3: Yapılandırın HTML Şablon (HTML Kod)

Açın PDF4me Düğümü seçin ve şablon alanlarını ayarlayın:

AlanDeğer
Şablon Dosya TürüHTML
Çıktı TürüHTML (tek seçenek için) HTML şablonlar)
Şablon Dosyası Giriş TürüHTML Kod
Şablon Dosya Adıinvoice_sample_1.html
HTML KodYapıştır bütün içeriği invoice_sample_1.html

:::ipucu Kısmi HTML dır OK Eğer kod parçacığınız eksikse <html> veya <head>Düğüm, onu temel bir yapıya sarar. HTML Kabuk otomatik olarak çalışır. Örnek dosya eksiksiz bir belgedir, bu nedenle olduğu gibi yapıştırın.

:::


Adım 4: Belge Verilerini Yapılandırın (JSON)

AlanDeğer
Belge Veri Giriş TürüMetin
Belge Veri TürüJSON
Belge Verileri MetniLütfen aşağıdaki metnin tamamını yapıştırın. invoice_sample_data_1.json (aşağıdaki bloğa bakınız)
{
"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"
}

Çekirdek düğüm ayarları (özet)

AlanDeğerNotlar
Bağlantı kurmak için kimlik bilgisiSenin PDF4me kimlik belgesiElde etmek API anahtar
KaynakGenerate
Operasyonları OluşturBelge Oluştur (Tekli)
İkili Veri Çıkış Adıdata (varsayılan)Çıktı şudur: HTML bu ikili özellikte

Adım 5: Çalıştırın ve Doğrulayın HTML

  1. Tıklamak İş akışını yürüt.
  2. Açın PDF4me Düğüm çıktısı altında. İkiliaçık mülk data (generated_document_output.html).
  3. Oluşturulan faturanın aşağıdaki bilgileri içerdiğini doğrulayın:
    • Alıcı → Test AG, cotext, Test Street 1/2, 8000 Zürih, İsviçre
    • Alıcı → Alıcı adı, Teslimat metni, Test Caddesi 1/2
    • Fatura meta verileri → Son Ödeme Tarihi 30.04.2025, Fatura Numarası 123456, Düzenleme Tarihi 01.04.2025
    • Satır öğeleriPDF4me 1000 baz ve 2000 Çağrı Paketi (miktarlar ve KDV dahil)
    • Toplam bakiye → 124.31

Yer tutucu boş görünüyorsa, bıyık yolunu kendi yolunuzla karşılaştırın. JSON. recipient.postalAddress.street1 Şablonda, verilerde de aynı iç içe geçmiş yapı gereklidir.


Adım 6: Çıktıyı Gönderin veya Kaydedin (İsteğe bağlı)

E-posta gönder: harita PDF4me ikili data olarak HTML gövde (etkinleştir) HTML e-posta).

İkili Dosyayı Yaz:

AlanDeğer
Dosya adıinvoice-output.html
Veri Özelliği Adıdata
Çıkış YoluKlasörün bulunduğu yer n8n dosyayı yazmalıdır

Alternatif Şablon Girişi: Yükle HTML Dosyadan

Yapıştırmak istemiyorsanız HTML düğüme:

  1. Eklemek İkili Dosyayı Oku önce PDF4me ve onu şuraya doğru yönlendirin invoice_sample_1.html.
  2. İçinde PDF4me ayarlamak Şablon Dosyası Giriş Türü ile İkili Veri, Şablon İkili Özelliği ile data, Şablon Dosya Adı ile invoice_sample_1.html.
  3. Kale Belge Veri Giriş Türü gibi Metin ve yapıştırın JSON 4. adımda olduğu gibi.

Ayrıca ev sahipliği de yapabilirsiniz. .html halka açık bir yerde URL ve kullanın Şablon Dosyası Giriş Türü: URL ile Şablon Dosyası URL.


Alternatif Veri Biçimleri

Seçenek A: JSON Dosya ikili formatta (invoice_sample_data_1.json)

  1. Eklemek İkili Dosyayı Oku için JSON dosya (veya şunu kullanın) Birleştir Şablon da ikili ise düğüm).
  2. Ayarlamak Belge Veri Giriş Türü ile İkili Veri, Belge Veri Türü ile JSON, Belge İkili Özelliği Veri alanınıza, Belge Veri Dosyası Adı ile invoice_sample_data_1.json.

B Seçeneği: XML (test.xml)

Ayarlamak Belge Veri Türü ile XML ve içeriğini yapıştırın 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 Seçeneği: CSV (test.csv)

Ayarlamak Belge Veri Türü ile CSV ve yapıştırın CSV Vücut. Örnekte şunlar var: iki veri satırı (bir kişi için) subInfo satır öğesi); başlık sütunları düzleştirilmiş adlar kullanır, örneğin recipient_name Ve 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

Üretim İş Akışı Kalıpları

Üretim ortamında HTML şablonu ve veri sağlamanın yaygın yollarıOnce the sample test works, replace the Manual Trigger with these patterns.
Webhook'tan fatura e-postası
  1. Webhook faturalama verilerini alıyor.
  2. PDF4me sabit bir şekilde çalışır HTML Kod şablon.
  3. Harita webhook'u JSON ile Belge Verileri Metni.
  4. E-posta gönder çıktıyı kullanır HTML mesaj gövdesi olarak.
Bulut depolamadan şablon
  1. Google Drive / S3 depoları fatura_örneği_1.html.
  2. Düğüm yüklerini indir HTML ikili olarak.
  3. PDF4me: Şablon Dosyası Giriş Türü = İkili Veri.
  4. Sheets'ten oluşturulan veriler veya CRM gibi JSON.
Halk URLs şablon ve veriler için
  1. Ev sahibi .html Ve .json halka açık HTTPS URLs.
  2. Ayarlamak Şablon Dosyası Giriş Türü = URL Ve Belge Veri Giriş Türü = URL.
  3. İkili Dosya Okuma düğümlerine gerek yok.

Sıkça Sorulan Sorular

Why use HTML Code instead of uploading a file?+
HTML Code lets you test instantly without file nodes. It is only available when Template File Type is HTML. For large templates or CI-managed markup, use Binary Data or URL instead.
Can HTML templates output PDF?+
No. When Template File Type is HTML, Output Type is HTML only. To get a PDF from HTML content, chain a separate PDF4me Convert node after this step.
How do line items work in the sample?+
The subInfo array in JSON drives {{#each subInfo}} blocks in the HTML table. Each object renders plan, quantity, vat, and totalPrice in aligned columns. Add or remove array items to change row count.
Why does test.csv have two rows?+
CSV flattens nested data. Each row represents one line item (plan, quantity, price, vat, totalPrice) while repeating shared invoice fields (recipient, buyer, dates). Both rows share the same totalAmount.
JSON vs XML vs CSV: which should I use?+
JSON is best for n8n because it matches nested mustache paths (recipient.postalAddress.street1) and the subInfo array. XML uses PascalCase elements in test.xml. CSV suits spreadsheet exports but uses flattened column names.

İlgili Kılavuzlar