Ürün ve API rehberi

Tablo Veri Oluşturucu

Oluşturucuyu açın

Tuvalde tabloyu seçin. Denetçinin Veri sekmesinde Veri Oluşturucuyu Aç düğmesini kullanın. Penceredeki alan, kaynak ve önizleme sekmeleri tablo yapısını ve verisini ayrı ayrı düzenlemenizi sağlar.

Kolonlar ve özet satırları

Alanlar bölümünde kolon ekleyin, başlığını ve bağlı olduğu veri alanını belirleyin. Genişlik, biçim ve gelişmiş görünüm ayarlarını ihtiyaca göre düzenleyin. Tablonun altına toplam, ara toplam veya not satırı ekleyebilirsiniz; nasıl hesaplandıkları Toplamlar bölümünde.

Toplamlar

Toplam veya ara toplam satırında Hesap seçin: Toplam, Ortalama, En düşük, En yüksek ya da Satır sayısı. Sonuç Değer kolonuna yazılır ve o kolonun tablodaki bütün satırlarından hesaplanır; satıra ayrı bir biçim vermezseniz kolonun biçimini alır.

JSON
"summaryRows": [
  { "type": "total", "label": "Genel toplam",
    "aggregate": "sum", "targetColumnKey": "total" }
]

Yalnız sayı olarak gelen hücreler hesaba girer: boş hücre atlanır, metin olarak gönderilen bir tutar (“1.250,00”) sonucu boş bırakır. Ara toplam da sayfa sayfa değil, bütün satırlar üzerinden hesaplanır. Hesap yerine Veri alanı seçerseniz Değer kutusu tablodan değil verinizin kökünden okunur: {{ grandTotal }} gibi.

Kaynak ve örnek JSON

Kaynak sekmesinde tablonun bağlı olduğu veri dizisini seçin ve örnek JSON’u düzenleyin. Kolonun veri alanı, dizideki nesnelerin alan adıyla eşleşmelidir. Örneğin items içindeki quantity değerini göstermek için kolon alanını quantity olarak tanımlayın. Geçersiz JSON uyarısını düzeltmeden devam etmeyin.

Varsayılan tablo görünümü

İşlem Miktar Tutar
Arıza teşhisi21.700,00
Bağlantı modülü12.850,00
Yerinde kalibrasyon1850,00

Ölçüler ürünün varsayılanları: başlık 40px, satır 40px, hücre dolgusu 10px, kenarlık 1px. Şablonda üzerine yazabilirsiniz.

Bir tablo öğesi, baştan sona

Tablo, verinizdeki bir diziye bağlanır ve her öğe için bir satır çizer. Aşağıdaki öğe Fatura şablonuyla gelenin aynısı; altındaki çağrı da aynı tabloya üç satır veriyor.

JSON
{
  "id": "invoice-items",
  "type": "table",
  "placementMode": "flow",
  "binding": "lineItems",
  "layout": { "x": 0, "y": 330, "width": 100, "widthUnit": "percent", "height": 220 },
  "style": {
    "tableHeaderHeight": 36,
    "tableRowHeight": 34,
    "tableRepeatHeader": true,
    "tablePreventRowSplit": true
  },
  "columns": [
    { "key": "name", "label": "Açıklama", "valueTemplate": "{{ name }}",
      "align": "left", "widthPercent": 46 },
    { "key": "quantity", "label": "Miktar", "valueTemplate": "{{ quantity }}",
      "align": "right", "widthPercent": 14 },
    { "key": "unitPrice", "label": "Birim fiyat", "valueTemplate": "{{ unitPrice }}",
      "align": "right", "widthPercent": 20,
      "format": { "kind": "currency", "currency": "TRY", "decimals": 2 } },
    { "key": "total", "label": "Tutar", "valueTemplate": "{{ total }}",
      "align": "right", "widthPercent": 20,
      "format": { "kind": "currency", "currency": "TRY", "decimals": 2 } }
  ]
}
cURL
curl -X POST https://api.pdfgine.com/api/v1/render \
  -H "X-PDFgine-Key: $PDFGINE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "templateCode": "invoice",
        "format": "pdf",
        "locale": "tr",
        "data": {
          "document": { "title": "Fatura özeti" },
          "referenceNo": "DOC-2026-0042",
          "issueDate": "2026-09-06",
          "currency": "TRY",
          "customer": "Acme Teknoloji A.Ş.",
          "lineItems": [
            { "name": "Arıza teşhisi", "quantity": 2, "unitPrice": 850.00 },
            { "name": "Bağlantı modülü", "quantity": 1, "unitPrice": 2850.00 },
            { "name": "Yerinde kalibrasyon", "quantity": 1, "unitPrice": 850.00 }
          ]
        }
      }'

binding verinizdeki dizinin adı, key her öğenin içindeki alanın adı, valueTemplate de basılacak olan. tableRepeatHeader başlığı her sayfaya taşır, tablePreventRowSplit ise bir satırın sayfa sonunda ikiye bölünmesini engeller.

Uygulama ve uzun tablo testi

Önizleme sekmesinde kolon sırasını, boş alanları ve özetleri kontrol edip Uygula ile tabloya aktarın. Sonra belge önizlemesinde sıfır satır, tek satır ve çok sayıda satır deneyin. Uzun metinler, başlık yüksekliği ve satır yüksekliği sayfa düzenini etkiler; yalnız kısa örnek veriyle yetinmeyin.

Grafikler ve raporlar →

Veri kümesi ögesi

Veri kümesi ögesi, bağlı olduğu koleksiyonu tablo olarak basar ve sütunlarını veriden kendisi türetir — siz bildirmezsiniz. Koleksiyonun biçimini şablon değil gönderdiğiniz veri belirliyorsa bu ögeyi kullanın.

Bağlanan değer Belgede görünen
[{ "name": "…", "quantity": 2 }] Her alan için bir sütun, alanların ilk göründüğü sıraya göre. Bir alanı taşımayan satır o sütunu kaldırmaz.
[{ "party": { "name": "…" } }] İç içe nesneler party.name gibi noktalı sütunlara açılır, en çok üç seviye. Satır içindeki bir dizi tek hücrede kalır.
["urgent", "warranty"] Tek sütun; hücreler değerlerin kendisi, başlık ise bağlamanın son parçası.
{ "status": "released" } Tek satır; nesnenin her alanı için bir sütun.
[] Hiçbir şey çizilmez. Bağlanmamış bir veri kümesi ögesi de hiçbir şey çizmez.

Sütun başlıkları alan adlarıdır. Veri kümesi ögesinin kendi başlıkları yoktur — sütunlara kendiniz ad vermek istiyorsanız tablo ögesini kullanın.

Sık takılınan yerler

  • Verinizde olmayan bir diziyi adlandıran binding hata değil boş tablo çizer. Tablo boş çıkıyorsa binding ile isteğinizdeki anahtarı karşılaştırın.
  • Sütun anahtarı, o dizideki nesnelerin bir özelliğidir. Yanlış yazılmış tek anahtar bir sütunu boşaltır, tablonun geri kalanı sağlıklı görünür.
  • Tutar ve miktar sayı olarak gelmeli. Metin biçimlendiriciyi atlar; sütun hizasını ve binlik ayıracını kaybeder.
  • Uzun tablo sayfa geçer. tableRepeatHeader olmadan ikinci sayfa çıplak satırlarla başlar, tablePreventRowSplit olmadan bir satır ikiye bölünebilir.
  • Sıfır, bir ve çok satırı deneyin. Yalnız üç satır görmüş bir tablo hem boş durumu hem sayfa kırılmasını gizler.