web-dev-qa-db-ja.com

TTFフォントをhtml2pdfに追加する方法PHPプログラム

私はこのコードでHTML2PDF4.03を使おうとしています:

<?php
$content = "..."; # my HTML code
require_once(dirname(__FILE__).'/html2pdf_v4.03/html2pdf.class.php');
$html2pdf = new HTML2PDF('P','A4','en', true, 'utf-8', array(15,20,15,20) );
# here I'm trying to add my arial.ttf
$html2pdf->pdf->AddTTFFont('arial.ttf');
$html2pdf->WriteHTML($content);
$html2pdf->Output('exemple.pdf');
?>

今、プログラムはこれで死にます:

PHP Fatal error:  Call to undefined method HTML2PDF_myPdf::AddTTFFont()

PDFファイルにTTFフォントを追加するにはどうすればよいですか?

8
netdjw

次の方法を使用して、セットアップに1つのカスタムフォントを追加することができました。

まず、次を使用して.ttfファイルを3つの別々のファイル(.php .zおよび.ufm)に変換します フォントコンバーター このシステムによって生成された3つのファイルをTCPDFのfontsフォルダーに配置します。

これで、次のコマンドを使用して、PDFのデフォルトフォントを設定できます。

$html2pdf->setDefaultFont("the_name_you_called_your_font");

これは非常に簡単に機能しました。この方法では、2つの別々のフォントを使用すると問題が発生します。私はそれを理解します

10
o11y_75

フォントを変換するときに選択した回答(o11y_75による)を拡張するには、特定の名前を使用して、太字と斜体のバリアントも含める必要があります。そうすれば、このようなフォント定義を1つだけ追加できます

$html2pdf->AddFont('opensans', 'normal', 'opensans.php');
$html2pdf->setDefaultFont('opensans');

フォントを変換するときは、たとえば次のように名前を付けます。

default: opensans
bold: opensansb
italic: opensansi
bold italic: opensansbi

元の名前の後ろに、それぞれの場合にb、i、biを追加していることに注意してください。この問題に関するドキュメントは見つかりませんでしたが、TCPDFにすでに付属しているフォントにある命名法に従って、機能しました。

3
Ignacio

複数のフォントを追加する場合は、次を使用してください。

$html2pdf->addFont('opensansregular', '', 'opensansregular');
$html2pdf->addFont('opensansbold', '', 'opensansbold');

上記で指定したフォントコンバーターでは、特別な文字を使用しないことをお勧めします。

次に、CSSに次のように入力します。

<style type="text/css">
<!--
.uppercase {
    text-transform: uppercase;
}
* {
    font-family: opensansregular;
}
h1, h2, h3, strong {
    font-family: opensansbold;
}
-->
</style>
1