问题
I am using TCPDF Library Version: 5.9.011. I am trying to execute HTML layout as PDF. For which I tried with example provide with the site
$html = '<h1>HTML Example</h1>
<h2>List</h2>
Some special characters: < € € € & è è © > \\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');
Apparently found that generated PDF only default header and footer with middle content blank.
However if I remove special characters like:
$html = '<h1>HTML Example</h1>
<h2>List</h2>
Some special characters:
';
PDF gets its middle content as specified in $html
回答1:
before line $pdf->writeHTML
$html = utf8_decode($html);
maybe
$html = utf8_encode($html);
回答2:
As already mentionned by other persons you need to change the constructor, Set UTF-8 flase and change new charshet like below:
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);
Only changing this won't always prevent getting a blank page. To prevent getting a blank page: change your font type to 'helvetica' or other.
$pdf->SetFont('helvetica', '', 11, '', true);
It works!
回答3:
you need to change constructor, Set UTF-8 flase and change new charshet like below:
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);
In above example, I set encoding ISO-8859-1 instead of UTF-8 and I change true to false.
Krish
回答4:
I also had a similar issue. I had a to generate a pdf from a HTML file with multiple lists and a tick symbol as a bullet point.
I tried all these solutions but none worked, I had to used a picture, but it was slowing down the process. Finally I came accross this: http://www.tcpdf.org/examples/example_055.pdf, at the very end there is a "zapfdingbats" font with a lot of symbols.
So I replaced all my tick images by : <span>3<span>
and set the font of this element to font-family="zapfdingbats"
, and it worked.It is a bit hacky, but it works well.
回答5:
I am writing HTML content to pdf and have to print the check mark symbol. Here is what I did and it worked.
$pdf->SetFont('zapfdingbats');
$pdf->SetFont('helvetica'); // for regular content
and then in my HTML I added the checkmark with below code
<span style="font-family: zapfdingbats;">4</span>
Hope this
回答6:
You are using latest version of TCPDF.Follow steps mentioned here. It should work
回答7:
I had a similar problem and I fixed all in this way:
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'UTF-8', false, true);
and at the end:
$pdf->writeHTMLCell(0, 0, '', '', utf8_decode($html), 0, 1, 0, true, '', true);
回答8:
You can put the text in a variable and use a php function to convert
example for 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');
for other function use php reference guide
回答9:
For me, this fixed the problem :
$this->pdf->AddPage('P', 'A4');
$this->pdf->deletePage($this->pdf->getNumPages());
I hope it will help someone
回答10:
I had to add single space after string ending with UTF8 character (not after whole <p>
tag):
$name = '<p style="color:red;font-weight:bold;font-size:34pt;text-align:center;">Jaźń Jeżę </p>';
utf_decode()
and utf_encode()
didn't work.
来源:https://stackoverflow.com/questions/4141865/tcpdf-html-with-special-characters-displays-empty-pdf-file