2010-11-10 37 views
9

Tôi đang sử dụng phiên bản thư viện TCPDF: 5.9.011. Tôi đang cố gắng thực hiện bố cục HTML dưới dạng PDF. Ví dụ: tôi đã thử với một số ví dụ: siteHTML TCPDF với các ký tự đặc biệt hiển thị tệp PDF trống

$html = '<h1>HTML Example</h1> 
<h2>List</h2> 
Some special characters: &lt; € &euro; &#8364; &amp; è &egrave; &copy; &gt; \\slash \\\\double-slash \\\\\\triple-slash 
'; 
// output the HTML content 
$pdf->writeHTML($html, true, false, true, false, ''); 

//Close and output PDF document 
$pdf->Output('example_006.pdf', 'I'); 

Rõ ràng là chỉ tạo ra đầu trang và chân trang mặc định có nội dung ở giữa.

Tuy nhiên nếu tôi loại bỏ ký tự đặc biệt như:

$html = '<h1>HTML Example</h1> 
<h2>List</h2> 
Some special characters: 
'; 

PDF được nội dung giữa của nó như quy định tại $html

Trả lời

0

Bạn đang sử dụng phiên bản mới nhất của bước TCPDF.Follow nêu here. Nó sẽ làm việc

+0

Tôi chỉ làm theo các bước tương tự. Nhưng không may mắn. –

+0

Liên kết hiện đã chết. – beerwin

+1

@beerwin http://www.tcpdf.org/examples/example_006.phps – NullPointerException

4

bạn cần thay đổi nhà xây dựng, Set UTF-8 flase và thay đổi charshet mới như dưới đây:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false); 

Trong ví dụ trên, tôi thiết lập mã hóa theo tiêu chuẩn ISO-8859-1 thay vì UTF-8 và Tôi thay đổi đúng thành sai.

Krish

+0

đặt tham số $ unicode trên hàm tạo TCPDF thành false và tham số $ encoding thành 'ISO-8859-1' hoặc bản đồ ký tự khác – Elisa

9

Như đã mentionned bởi những người khác mà bạn cần thay đổi các nhà xây dựng, Set UTF-8 flase và thay đổi charshet mới như dưới đây:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false); 

Chỉ thay đổi này sẽ không luôn luôn ngăn chặn việc một trang trống. Để tránh nhận được một trang trống: thay đổi kiểu phông chữ thành 'helvetica' hoặc loại phông chữ khác.

$pdf->SetFont('helvetica', '', 11, '', true); 

Nó hoạt động!

10

trước dòng $ pdf-> writeHTML

$html = utf8_decode($html); 

lẽ

$html = utf8_encode($html); 
+0

utf8_decode đã làm lừa cho tôi! cảm ơn, đã nhận được thực sự bực bội không có thông báo lỗi để hướng dẫn tôi –

+0

$ output = utf8_encode ($ output); giải quyết vấn đề của tôi! cám ơn – NoBody

0

Tôi đã có một vấn đề tương tự và tôi cố định tất cả theo cách này:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'UTF-8', false, true); 

và tại kết thúc:

$pdf->writeHTMLCell(0, 0, '', '', utf8_decode($html), 0, 1, 0, true, '', true); 
0

Tôi cũng gặp sự cố tương tự. Tôi đã có một để tạo ra một pdf từ một tập tin HTML với nhiều danh sách và một biểu tượng đánh dấu như là một điểm bullet.

Tôi đã thử tất cả các giải pháp này nhưng không có giải pháp nào hoạt động, tôi đã phải sử dụng hình ảnh, nhưng nó đã làm chậm quá trình. Cuối cùng tôi đã vượt qua điều này: http://www.tcpdf.org/examples/example_055.pdf, vào cuối cùng có một phông chữ "zapfdingbats" với rất nhiều biểu tượng.

Vì vậy, tôi đã thay thế tất cả hình ảnh đánh dấu của mình theo: <span>3<span> và đặt phông chữ của thành phần này thành font-family="zapfdingbats" và nó hoạt động. Đó là một chút hacky, nhưng nó hoạt động tốt.

0

Bạn có thể đặt văn bản trong một biến và sử dụng một hàm php để chuyển đổi

ví dụ cho UTF-8 caracter

$html = '<h1>HTML Example</h1> 
<h2>List</h2> 

Some special characters: € è ù à \\ \\\ 
'; 
// output the HTML content 
$pdf->writeHTML(utf8_encode($html), true, false, true, false, ''); 

//Close and output PDF document 
$pdf->Output('example_006.pdf', 'I'); 

cho chức năng sử dụng khác php reference guide

0

Đối với tôi, điều này cố định vấn đề:

$this->pdf->AddPage('P', 'A4'); 
$this->pdf->deletePage($this->pdf->getNumPages()); 

Tôi hy vọng nó sẽ trợ giúp p someone

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