2012-06-07 15 views
10

Tôi đang tạo tệp PDF bằng thư viện mPDF và đầu trang và chân trang của tôi thay đổi kích thước tùy thuộc vào một vài tham số.Ngăn chặn chân trang chồng lên nhau trong mPDF

Một giải pháp tĩnh sẽ là đặt lề chân trang, điều này sẽ giải quyết sự chồng chéo - nhưng khi chân trang có thể khác về kích thước, đây không phải là giải pháp mà tôi cảm thấy hài lòng. Có cách nào để có được kích thước footer và áp dụng các margin cho phù hợp?

+0

Tôi đang gặp vấn đề tương tự, nếu bạn tìm thấy giải pháp cho nó, bạn có thể vui lòng cập nhật câu hỏi của mình không? – Bogdan

+0

Tôi đã cập nhật câu trả lời của mình bên dưới. Hy vọng nó sẽ giúp bạn. Lề tài liệu phải được đặt cho margin_header/footer. Bạn cũng có thể cần phải tắt cài đặt 'setAutoTopMargin' trong tệp cấu hình của mình. – Daniel

Trả lời

18

Sự cố nằm trong tài liệu về mpdf. Tôi nghĩ margin_footer và margin_header là lề giữa phần thân tài liệu và các giá trị này. Thay vào đó, margin_footer và margin_header là các lề tài liệu, như một người sẽ nghĩ margin_top và margin_bottom sẽ là.

Vì vậy, việc thay đổi lề dưới cùng và trên cùng sẽ quyết định vị trí của phần thân tài liệu. Và việc thay đổi lề đầu trang/chân trang sẽ quyết định lề in.

Hy vọng điều đó sẽ hữu ích!

câu trả lời Cập nhật

tài liệu MPDF là một chút tắt cho cuộc gọi constructor, tôi đoán. Đối số margin_top/bottom thực sự là lề nội dung và không áp dụng cho các đối số margin_header/footer. (Nếu tôi nhớ chính xác). Margin_top/bottom là lề tuyệt đối từ đầu tài liệu và phải bao gồm chiều cao của đầu trang/chân trang.

Dưới đây là cách đúng đắn về xử lý bên lề:

/** 
* Create a new PDF document 
* 
* @param string $mode 
* @param string $format 
* @param int $font_size 
* @param string $font 
* @param int $margin_left 
* @param int $margin_right 
* @param int $margin_top (Margin between content and header, not to be mixed with margin_header - which is document margin) 
* @param int $margin_bottom (Margin between content and footer, not to be mixed with margin_footer - which is document margin) 
* @param int $margin_header 
* @param int $margin_footer 
* @param string $orientation (P, L) 
*/ 
new mPDF($mode, $format, $font_size, $font, $margin_left, $margin_right, $margin_top, $margin_bottom, $margin_header, $margin_footer, $orientation); 
+10

cảm ơn cho bản cập nhật, cài đặt "cài đặt thử nghiệm" '$ mpdf-> setAutoTopMargin = 'stretch' và $ mpdf-> setAutoBottomMargin = 'stretch'' sẽ đảm bảo đầu trang và chân trang không bao giờ chồng lên phần chính, mà không có để tính toán các lề đầu trang và chân trang. Khá hữu ích khi xử lý các đầu trang và chân trang động, do người dùng tạo – Bogdan

+0

Woah! Không biết điều đó là có thể. Cảm ơn bạn vì thông tin đó, nó sẽ có ích rất sớm. – Daniel

+0

Tôi đã thử $ mpdf-> setAutoBottomMargin = 'stretch' không thành công, bất kỳ hướng dẫn nào về cách sử dụng nó? – Aiphee

6
$mpdf->setAutoBottomMargin = 'stretch'; 

Làm việc cho tôi. Tất cả những gì tôi phải làm là đảm bảo rằng tôi đã bao gồm tùy chọn trước chân trang.

+0

Nó cũng không làm việc cho tôi cho đến khi tôi đặt nó trước chân trang. –