NextPDF Connect ile HTML tablosu oluşturma
Bir bakışta
“Bir bakışta” başlıklı bölümYapılandırılmış sıralı verileri bir HTML tablo dizesinden üretin. add_table, girişi yerleşimden önce katı bir DOMDocument izin listesiyle temizler; böylece kaynak işaretleme değişse bile çıktı tutarlı kalır. Core’daki create_pdf, add_table ve output_pdf araçlarını kullanın. Tablo, row/column ızgarası biçiminde yerleştirilir (CSS Tables 3 §3.1).
Kurulum
“Kurulum” başlıklı bölümcomposer require nextpdf/serverBir aktarımı bağlayın. Giriş, <table> kökünü, <tr> satırlarını ve <th>/<td> hücrelerini içermelidir.
Kavramsal genel bakış
“Kavramsal genel bakış” başlıklı bölümadd_table, sabit bir öğe izin listesi uygular (table, thead, tbody, tfoot, tr, th, td, caption, b, i, u, strong, em, br, p, span). Tüm öznitelikler her öğeden kaldırılır: style, class, width, colspan, rowspan, id ve diğerleri. İzin listesi dışındaki her etiket, kendi metin içeriğiyle değiştirilir. Hücre metni, belgenin etkin yazı tipi durumunu kullanır; bunu set_font ile add_table öncesinde ayarlarsınız. Metin, içerik akışındaki sırayla metin gösterme işleçleri tarafından yazılır (ISO 32000-2 §9.4). Sütun genişliklerine satır içi CSS değil, yerleşim motoru karar verir.
API yüzeyi
“API yüzeyi” başlıklı bölüm| Araç | Rol | Risk düzeyi |
|---|---|---|
create_pdf | Oturumu açar | Güvenli |
set_font | Hücre metni yazı tipini ayarlar (isteğe bağlı, add_table öncesinde) | Dikkat |
add_table | Tabloyu temizler ve yerleştirir | Dikkat |
output_pdf | PDF’yi oluşturur ve döndürür | Onay gerekli / İnceleme (base64) |
Kayıtlı resmi katalog Araç kataloğu sayfasıdır. Kullanabileceğiniz araçlar, kurulu katmana bağlıdır.
Kod örneği — hızlı başlangıç
“Kod örneği — hızlı başlangıç” başlıklı bölümcreate_pdf(A4 dikey, başlık) →document_id.add_table, eksiksiz bir<table>...</table>dizesiyle (başlık satırı ve veri satırları).output_pdf→ base64 veya birfile_pathile denetimli dosya yazma.
İmleç, en son işlenen satırın altına iner ve sonraki içerik için yer bırakır.
Kod örneği — üretim
“Kod örneği — üretim” başlıklı bölümHyperText Markup Language (HTML) içeriğini göndermeden önce doğrulayın. Belirlenimci tipografi için hücre yazı tipini set_font ile ayarlayın. Varsayılana güvenirseniz, çıktı yazı tipi uygulamaya bağımlı olur. Ana makinenin hangi araçları çağırabileceğini denetlemek için kayıt defterini güvenlik ilkesiyle kısıtlayın.
Uç durumlar ve dikkat edilecek noktalar
“Uç durumlar ve dikkat edilecek noktalar” başlıklı bölüm- Boş veya tablo olmayan HTML.
<table>içermeyen giriş, işlenebilir-tablo-yok hatası döndürür. - Bozuk işaretleme. Dengesiz etiketler bir ayrıştırma hatası döndürür; bu nedenle önce yapıyı doğrulayın.
- Sayfadan daha geniş tablo. Sütun sayısını azaltın, içeriği kısaltın veya yatay yönlendirmeye geçin.
- Taşma. Uzun bir tablo yeni bir sayfaya akar. Yanıttaki
position.pagedeğerini denetleyin veya öncedenadd_pageçağırın.
Performans
“Performans” başlıklı bölümKüçük bir tablo bütçe sınırları içinde işlenir; çıktı birkaç KB boyutunda olur. Profil structural profilidir. Temizleme işlemi, ayrıştırılan DOM üzerinde tek geçişte çalışır.
Güvenlik notları
“Güvenlik notları” başlıklı bölümÖznitelik kaldırma koşulsuzdur ve atlatılamaz. Bu, hücre işaretlemesi yoluyla yapılan stil ve betik enjeksiyonuna karşı koruma sağlar. Hiçbir satır içi CSS, olay işleyicisi veya javascript: URL’si korunmaz. İzin listesi güven sınırıdır; bu nedenle işlenen çıktıyı kaynakta verilen keyfi stillerin birebir kopyası olarak değerlendirmeyin.
Uygunluk
“Uygunluk” başlıklı bölüm| İfade | Belirtim | Madde | reference_id |
|---|---|---|---|
| Tablolar, bir row/column hücre ızgarası olarak yerleştirilir. | CSS Tables 3 | §3.1 | |
| Metin, akış sırasına göre metin işleçleri tarafından gösterilir. | ISO 32000-2 | §9.4 |
Ticari bağlam
“Ticari bağlam” başlıklı bölümGeçerli değil — buradaki her araç Core’dur.
CSS destek matrisinden alıntı (yalnızca doğrulanmış)
“CSS destek matrisinden alıntı (yalnızca doğrulanmış)” başlıklı bölümadd_table, genel amaçlı bir CSS motoru çalıştırmaz. Tek “CSS” davranışı, sabit tablo ızgara modelidir: satırlar ve sütunlar tablo yapısından gelir, genişlikleri ise yerleşim motoru seçer. Öznitelikler kaldırıldığı için satır içi stil tasarım gereği desteklenmez. Motor düzeyindeki (Connect dışı) CSS kapsamı için projenin CSS destek matrisine bakın.
Tek geçişli akış kısıtlaması
“Tek geçişli akış kısıtlaması” başlıklı bölümadd_table, sağlanan işaretlemeyi bir kez bir DOM’a ayrıştırır ve tek geçişte yerleştirir. Harici stil sayfalarına göre yeniden akış yapmaz. Sayfaya sığmayan tablo, geriye dönük olarak yeniden akmak yerine bir sonraki sayfaya geçer.
Büyük tablolar için bellek bütçesi
“Büyük tablolar için bellek bütçesi” başlıklı bölümÇok büyük tablolarda, ayrıştırılan DOM ve yerleştirilen hücreler çağrı boyunca bellekte tutulur. Tepe bellek bütçesi içinde kalmak için büyük veri kümelerini birden çok add_table çağrısına bölün.
Aktarım kullanılabilirliği
“Aktarım kullanılabilirliği” başlıklı bölüm| Aktarım | Kullanılabilir | Notlar |
|---|---|---|
| MCP (stdio) | Evet | Büyük HTML, stdio çerçevesini büyütür. |
| REST | Evet | HTML’yi istek gövdesinde gönderin. |
| gRPC | Evet | Tekil çağrı; ileti boyutu sınırları geçerlidir. |
HITL risk düzeyi
“HITL risk düzeyi” başlıklı bölümcreate_pdf Güvenli’dir; set_font ve add_table Dikkat düzeyindedir; output_pdf Onay gerekli düzeyindedir; base64 kipinde İnceleme düzeyine indirilir. Dosya çıktısı Onay gerekli düzeyinde kalır. output-approval bölümüne bakın.
Onay geçidi JSON zarfı
“Onay geçidi JSON zarfı” başlıklı bölümBase64 çıktısı:
{ "allowed": true }Dosya çıktısı, output-approval bölümünde belgelenen sınama zarfını döndürür.