2006年11月04日
PHP+PDFでフォントの追加
昨日からPHPでPDFファイルの生成を行っていました。
PDFの生成にはFPDFを使用してみましたがよくできていますね。
けど、途中で壁が出ました。PDFに専用のフォントを埋め込みたいのですが、これがちょっと面倒。
フォントはTrueTypeのTTCファイル。
FPDFのチュートリアルによるとttf2pt1でTTF(TrueTypeFont)のフォントメタリックファイル(.afm)を生成する必要があり。しかし、このttf2pt1はTTFフォントは対応しているもののTTCは未対応。
TTC(TrueType Collection font file)とはいくつかのTTFをまとめたフォント郡のことでTTCを一度TTFに分解する必要がある。
その分解するにはMicrosoft から無料で提供されているbreakttc.exeというソフトで分解が可能。(現在はMicrosoftからの提供は終了している模様)
早々、そのソフトで分解したファイルし、ttf2pt1でフォントメタリックファイルを生成。
ここまでできたところでまた壁が出てきました。
そのフォントはマルチバイトのフォントなのですが、mbfpdf.phpのReadMeによるとフォント定義ファイルの生成にはWindowsのPHPが必要とのこと。
少々時間が無いのでとりあえず、新フォントの追加は断念しまいした。
Linux+PHP+PDFでのフォント追加って結構面倒ですね。
(メモ記事でした)
PDFの生成にはFPDFを使用してみましたがよくできていますね。
けど、途中で壁が出ました。PDFに専用のフォントを埋め込みたいのですが、これがちょっと面倒。
フォントはTrueTypeのTTCファイル。
FPDFのチュートリアルによるとttf2pt1でTTF(TrueTypeFont)のフォントメタリックファイル(.afm)を生成する必要があり。しかし、このttf2pt1はTTFフォントは対応しているもののTTCは未対応。
TTC(TrueType Collection font file)とはいくつかのTTFをまとめたフォント郡のことでTTCを一度TTFに分解する必要がある。
その分解するにはMicrosoft から無料で提供されているbreakttc.exeというソフトで分解が可能。(現在はMicrosoftからの提供は終了している模様)
早々、そのソフトで分解したファイルし、ttf2pt1でフォントメタリックファイルを生成。
ここまでできたところでまた壁が出てきました。
そのフォントはマルチバイトのフォントなのですが、mbfpdf.phpのReadMeによるとフォント定義ファイルの生成にはWindowsのPHPが必要とのこと。
《TrueType フォントの追加方法(Win32 Only)》現在の環境はLinux。WindowsにはPHPをインストールしていません。_| ̄|○
・http://www.fpdf.org/en/script/index.php からYann Sugere氏のaddfont.zipを
ダウンロードして、FPDFのfont/makefontフォルダへ解凍。
・MS-DOSプロンプトを開き、FPDFのfont/makefontフォルダへ移動。
・mkttfdef TTFファイル名 を実行するとfontフォルダのmbttfdef.phpが更新されます。
少々時間が無いのでとりあえず、新フォントの追加は断念しまいした。
Linux+PHP+PDFでのフォント追加って結構面倒ですね。
(メモ記事でした)
Category is PHP.
<%PingExcerpt%>
<%PingBlogName%> at <%PingDateTime%>
特に、今日のは最高に楽しかったですねェ。まるで異国の言葉の音楽を聴いているような、理解不能でも何故か好きなんです、こんなの(爆)これからも時折、煙に巻かれる楽しさを味わわせて下さい。
イラレで作った文書でもPDFにするときはフォントを全部アウトライン化しますしね。(おそらくみなさんそうするかと)
それくらいフォントは互換性がないというか・・・期待してないというか・・・
こういう話聞くとFLASHの互換性というかフォント埋め込みの技術はスゴイなと思いますね、やっぱ。
---
そういえばリバテックのブログちゃんと復活しましたので、リンクよろしくです。
Hibi日記は当然リンク済みです(w
Hibiさんあってのオカモトですから!
コメントありがとうございます。
すみません。
異国語を書きまくってしまいました。
どこかに書いておきたいな・・・。なんて思って追加いてしまいました。
ちなみにいまだに解決していません。
オカモトさん
コメントありがとうございます。
本当にフォントの問題は厄介ですね。
自分もあまりフォントにはこだわらないのですが
今回はちょっと必要なのでがんばっています。
リバテックはちゃんとチェックしていますよ。
最近がんばって書いていますね。
そのうちコメント書きます。