TCPDFライブラリバージョン:5.9.011を使用しています。 HTMLレイアウトをPDFとして実行しようとしています。私が例で試したものについては、 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');
どうやら、生成されたPDFデフォルトのヘッダーとフッターのみで、中央のコンテンツは空白であることがわかりました。
ただし、次のような特殊文字を削除すると、次のようになります。
$html = '<h1>HTML Example</h1>
<h2>List</h2>
Some special characters:
';
PDFは、$html
で指定された中間コンテンツを取得します
行の前$ pdf-> writeHTML
$html = utf8_decode($html);
多分
$html = utf8_encode($html);
他の人がすでに述べたように、コンストラクターを変更する必要があります。UTF-8フレームを設定し、以下のように新しい文字シェットを変更します。
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);
これを変更するだけでは、空白のページが表示されるのを常に防ぐことはできません。空白のページが表示されないようにするには、フォントの種類を「helvetica」などに変更します。
$pdf->SetFont('helvetica', '', 11, '', true);
できます!
コンストラクターを変更し、UTF-8 flaseを設定し、以下のように新しいcharshetを変更する必要があります。
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false);
上記の例では、UTF-8の代わりにエンコードISO-8859-1を設定し、trueをfalseに変更しています。
クリシュ
私も同様の問題を抱えていました。複数のリストと箇条書きの目盛り記号を含むHTMLファイルからPDFを生成する必要がありました。
私はこれらすべての解決策を試しましたが、どれもうまくいきませんでした。写真を使用する必要がありましたが、プロセスが遅くなりました。ついに私はこれに出くわしました: http://www.tcpdf.org/examples/example_055.pdf 、最後にたくさんの記号が付いた「zapfdingbats」フォントがあります。
そこで、すべてのティック画像を<span>3<span>
に置き換え、この要素のフォントをfont-family="zapfdingbats"
に設定すると、機能しました。少しハックですが、うまく機能します。
HTMLコンテンツをPDFに書き込んでおり、チェックマーク記号を印刷する必要があります。これが私がしたことであり、それはうまくいきました。
$pdf->SetFont('zapfdingbats');
$pdf->SetFont('helvetica'); // for regular content
次に、HTMLに以下のコードでチェックマークを追加しました
<span style="font-family: zapfdingbats;">4</span>
これを願っています
テキストを変数に入れ、php関数を使用して変換できます
uTF-8文字の例
$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');
他の関数の使用について phpリファレンスガイド
UTF8文字で終わる文字列の後に単一のスペースを追加する必要がありました(_<p>
_タグ全体の後ではありません):
_$name = '<p style="color:red;font-weight:bold;font-size:34pt;text-align:center;">Jaźń Jeżę </p>';
_
utf_decode()
およびutf_encode()
は機能しませんでした。
最新バージョンのTCPDFを使用しています。記載されている手順に従ってください ここ 。動作するはずです
特殊文字を使用して、őŐűŰのようなhtmlでPDFに印刷するには、dejavusansでSetFontを使用します
また、htmlでfont-familyを使用する必要がないことを確認してください。フォントファミリーがdejavusansを上書きし、探しているものが得られないことを願っています。
$html = '<h1>HTML Example</h1>
<h2>List</h2>
Some special characters: < € € € & è è © > \\slash
\\\\double-slash \\\\\\triple-slash
more char ő Ő ű Ű
';
$pdf->SetFont('dejavusans');
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->Output('output.pdf', 'D');
これが役立つことを願っています
同様の問題が発生し、次のようにすべて修正しました。
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, false, 'UTF-8', false, true);
そして最後に:
$pdf->writeHTMLCell(0, 0, '', '', utf8_decode($html), 0, 1, 0, true, '', true);
私にとって、これは問題を修正しました:
$this->pdf->AddPage('P', 'A4');
$this->pdf->deletePage($this->pdf->getNumPages());
私はそれが誰かを助けることを願っています