日本語の文字を含む PDF を作成するためにTCPDFを使用しています。TrueType フォント ArialUniを使用すると、円記号が \ ではなく正方形のボックスとして表示されることを除いて、ほとんどの文字が正しく表示されます。
ArialUni を使用して生成された PDF のスニペットを次に示します。
そこで、別のフォントを試してみました。GT200001を使用した結果の PDF の同じセクションを次に示します。
Helvetica を使用した同じセクションは次のとおりです。
GNU の FreeSansを使用した同じセクションを次に示します。
2行目は「(渋谷猿, ¥8,000)」と表示してほしい
Helvetica と Freesans が漢字を正しくレンダリングできないことは驚くことではありませんが、他の 2 つのフォントが漢字をレンダリングできるのに、より一般的な円記号をレンダリングできない理由がわかりません。
PDF を作成する Web サーバーは、Ubuntu を実行する LAMP です。OS X で Chrome を使用して PDF を表示しています (ブラウザ内ビューを使用)。また、Firefox で PDF をダウンロードして、プレビューで表示しようとしました。基本的に同じ結果が得られます。ArialUni と GT200001 は円記号を表示しませんが、Helvetica と Freesans は漢字を表示しません (円記号は表示します)。
PDFの行/セルごとに異なるフォントを使用できることはわかっていますが、漢字と円記号は同じ行にあります。
TCPDF を使用して漢字と円記号を 1 行で表示するにはどうすればよいですか?
PDF コードの上部近くで、TCPDF の addTTFfont(); を使用してフォントを読み込みます。
$this->font = $this->addTTFfont(K_PATH_FONTS.'arialuni.ttf', 'TrueTypeUnicode', '', 32);
PDFのセクションを書くために使用しているコードは次のとおりです。
$pdf->SetFont('arialuni','',10);
$pdf->MultiCell(105, $remarks_height, $remarks, 'B', 'L', false, 0, '', '', true, 1, false, true, $remarks_height, 'T');