4

日本語の文字を含む PDF を作成するためにTCPDFを使用しています。TrueType フォント ArialUniを使用すると、円記号が \ ではなく正方形のボックスとして表示されることを除いて、ほとんどの文字が正しく表示されます。

ArialUni を使用して生成された PDF のスニペットを次に示します。

ArialUni を使用して

そこで、別のフォントを試してみました。GT200001を使用した結果の PDF の同じセクションを次に示します。

GT200001を使用

Helvetica を使用した同じセクションは次のとおりです。

ヘルベチカの使用

GNU の FreeSansを使用した同じセクションを次に示します。

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');
4

3 に答える 3

5

このウィキペディアの記事では、このキャラクターについてもう少し読むことができます。

この日本語の漢字は、他の記号と同じように、基本的に2つの書き方があります。受け入れられた回答「私は¥ではなく¥を使用していました」から、彼が実際に倍幅文字の¥を使用したかったときに、「偶発的」またはUnicode¥記号を使用していたことがわかります。

于 2012-09-25T23:14:42.203 に答える
3

Oh dear, I figured it out.

I was using ¥, not ¥. Sorry for being confused!!

于 2012-09-24T05:21:14.217 に答える
2

TCPDFで気付いたのは、フォントがすべてだということです。私はそれを15のまったく異なる言語で、異なる文体でも使用しようとしました。使用しているフォントはArialUNICODEMSのみです。

TCPDFには、そのフォントを、arialuni.ctg.z(70k)、arialuni.php(447k)、およびarialuni.z(14M)であるTCPDFフレンドリファイルに変換する機能があります。

関数は、 http://www.tcpdf.org/fonts.phpです。

$fontname = $pdf->addTTFfont('/path-to-font/ARIALUNICODE.TTF', 'TrueTypeUnicode', '', 32);
于 2012-09-25T22:55:30.833 に答える