TCPDF bir MultiCell / writeHTMLCell yüksekliğini nasıl hesaplanır?

3 Cevap php

I in advance, bir sayfa sonu hazırlamak için birden fazla sayfadan oluşan bir PDF oluşturmak için denemek ve her öğenin (MultiCell) yüksekliğini hesaplamak gerekir. Belgelere göre benim kendi yapıyor bana destek olmak için orada GetCharWidth / GetStringWidth gibi fonksiyonların bir çift vardır, ama kayıp bir potansiyel performansının yanı sıra muhtemelen zaten bunu doğru yapmaz. Daha zarif bir şekilde benim hedefe ulaşmak için Öneriler?

Referans: TCPDF

3 Cevap

Buldum: D!!

Başka pdf2 nesne oluşturma

// pdf2 set x margin to pdf1's xmargin, but y margin to zero
// to make sure that pdf2 has identical settings, you can clone the object (after initializing the main pdf object)
$pdf2 = clone $pdf;
pdf2->addpage
pdf2->writeCell
$height = pdf2->getY()
pdf2->deletePage(pdf2->getPage())
pdf1->checkPageBreak($height);
pdf1->writeCell()

W00tness: D

Benim deneyim, önceden hücre yüksekliğini anlamaya neredeyse imkansızdır. Bu bir PageBreak içine gidiyoruz eğer tür önceden söyler TCPDF bir sayfa sonu işleme fonksiyonları kullanmak çok daha kolaydır. İşte örnek kod:

$yy = $this->pdf->GetY();

$check_pagebreak = $this->pdf->checkPageBreak($height+$padding,$yy,false);

Aksi takdirde, ben yapıyor sona budur PageBreak mantığını, kendiniz, işleyebilir, otomatik sayfa sonu için izin vermek için true false olarak değiştirin.

Ayrıca, eğer bu gerekebilir, burada başka bir küçük ipucu: iki paso belgenizi oluşturmak için özellikleri işlem kullanmayı düşünün. İlk geçiş Ayrıca dizilerde tüm lineheights ve sayfa başına satır saklayabilirsiniz tüm yükseklikleri vb hücreleri, pagebreaks, anlamaya kullanılır. Ikinci geçişte ON, (ikinci geçiş daha kolay okunur kod tutmak uğruna, ayrı bir yöntemle çalıştırın, ve aklı için olabilir) tüm doğru bilgileri ve PageBreak mantık için gerek ile belge oluşturun.