2012-07-03 37 views
7

Tôi đang bận với một dự án cần nhiều tệp pdf. Bởi vì tất cả chúng đều cần thiết kế của công ty tôi sử dụng hình nền với logo/hình mờ.TCPDF autopagebreak + backgroundimage

Mọi thứ diễn ra tốt đẹp nếu tôi chỉ có 1 trang, nhưng khi có nhiều trang, nền chỉ ở trên trang đầu tiên.

$pdf->Image('bg/background.jpg', 0, 0, 210, 297, '', '', '', false, 0, '', false, false, 0); 
     $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 
$pdf->setPageMark(); 
$pdf->SetAutoPageBreak(true); 
$pdf->writeHTML($bodyText, true, true, true, true, ''); 
$pdf->lastPage(); 
$pdf->Output('doc.pdf', 'I'); 

Vì vậy, $ bodyText của tôi là nhiều hơn thì 1 trang ...

Có một giải pháp để có mỗi trang một nền?

Cảm ơn

Wouter

Trả lời

19

Bạn có thể mở rộng các lớp TCPDF với một chức năng tiêu đề tùy chỉnh, và thêm hình ảnh vào tiêu đề, với TCPDF::Image. Có một ví dụ về cách để làm điều này trong TCPDF examples

Từ ví dụ:

// Extend the TCPDF class to create custom Header and Footer 
class MYPDF extends TCPDF { 
    //Page header 
    public function Header() { 
     // get the current page break margin 
     $bMargin = $this->getBreakMargin(); 
     // get current auto-page-break mode 
     $auto_page_break = $this->AutoPageBreak; 
     // disable auto-page-break 
     $this->SetAutoPageBreak(false, 0); 
     // set bacground image 
     $img_file = K_PATH_IMAGES.'image_demo.jpg'; 
     $this->Image($img_file, 0, 0, 210, 297, '', '', '', false, 300, '', false, false, 0); 
     // restore auto-page-break status 
     $this->SetAutoPageBreak($auto_page_break, $bMargin); 
     // set the starting point for the page content 
     $this->setPageMark(); 
    } 
} 

Và sử dụng MYPDF thay vì TCPDF cũng giống như bạn sẽ sử dụng TCPDF. Điều duy nhất tôi không biết nếu cơ thể PDF có thể chồng lên nhau với tiêu đề, nhưng tôi nghĩ rằng nó có thể nếu bạn xác định rõ ràng các lề và kích thước tiêu đề.

Hãy cho tôi biết nếu công trình này hoạt động.

+0

Cảm ơn! Điều này hoạt động tuyệt vời! – TwinsIT

+1

bạn có thể đánh dấu nó là giải pháp bất cứ lúc nào, cũng lên bầu chọn nó nếu bạn cảm thấy nó xứng đáng – SinistraD

+0

Làm việc cho tôi quá, cảm ơn. – ekerner

Các vấn đề liên quan