2010年06月27日


VBScript : TCPDFで MS ゴシック、MS Pゴシック、MS UIゴシック、MS 明朝、MS P明朝を非埋め込み型で利用できるように全てを自動化したスクリプトを作成時に気が付いたTCPDFに関する3つの誤解


VBScript : TCPDFで MSフォントが使えるようにする全自動スクリプト
とにかく手作業ではとても時間がかかるので、全て自動化しました。それでも結構な 時間がかかります。3分くらいは待たないといけないと思います。 そもそも、方法として誤解が多かったのが印象です。チータエンジニアってところで いろいろ日本語サポートしてくれているのですが、日本語訳が中途半端で事実を誤解 するような日本語です。 まず第一に、TCPDF は FPDF から引き継がれているはずなので、元々 FPDF は非埋め 込み型で動作していました。一通り実装したので、そのへんは間違い無いです。 TCPDF も、非埋め込み型にする事ができます。職種によっては、それではまずい事が あるのは承知していますが、システム的には、フォントデータを埋め込むのはよろし くありません。その PC に そのフォントが無いと表示不可能になりますが、アプリケ ーションとしては、「読めれば」良いので、MS の通常フォントが欲しいのです。 ※ MS ゴシック、MS Pゴシック、MS UIゴシック、MS 明朝、MS P明朝 誤解その1 で、サンプルとして実装されていたのが何故か、Arial Unicode MS です。こんなフォ ントがあったなんて、この作業で初めて気が付きましたが、これは PC にフォント データのある「非埋め込み型」です。サンプルそのものがそもそも、フォントデータ を必要としない日本語フォントなのです。 誤解その2 さらに、新しいフォントを作成する下りでは、一応日本語フォントの追加の手順を 想定しているようなのですが、イタリックやボールドを実装するのに、出来上がった フォントファイルをコピーして増産するように読み取れます。ここは、フォントに ついては素人なので、良くは解らないところですが、調べた限りMSのフォントにイ タリック文字としての書体は無く、実装はアプリケーションでしているようなのです。 で、.php 定義ファイルは一つしか必要無い。 ※ 結局イタリックはできません。以下はイタリック指定した結果です 元々利用可能なフォントに加えて、MSフォントの印字サンプルです 誤解その3 チータエンジニアでの記述は、全てフォントを埋め込む事を前提に書かれています。 要するにこれが職種としての方向性の違いによる誤解の元ですが、きちんと README 読まないと、非埋め込み型の引数については知る事ができません。さらに、古い記述 では、非埋め込みにする古い方法しか乗っておらず、知らないとそれでいいのかと 思ってしまいますし、文字化けの対処にいたっては、サンプルそのものが化けてます し。つまり、フォントの埋め込みと非埋め込みの違いをはっきりさせるには、 REEADME 読みましょう。という事になります。
posted by at 2010-06-27 14:30 | ツール | このブログの読者になる | 更新情報をチェックする