PHPでPDF

PDFでPDFに文字を書きこんで出力したときのめも。

FPDF+MDFPDF。
PDFの読み込みや日本語の処理も問題なし。解説してるサイトもいっぱい。
ところが、イラストレータで読み込むと、フォントがアウトラインにされてしまう。
フォントは埋め込まれれていないのだから、代替フォントで表示してくれればいいのに、
なぜかアウトラインになる。不思議な動作だ。Acrobatなどではテキストで表示される。


追記:
こっちでも文字幅のとこがめちゃくちゃだった。
mbfpdf.phpのGetMBStringWidthのところ。

return mb_strwidth ( $s ) * 500 * $this->FontSize/1000;
の1行に置き換えた。




Zend_Pdf
解説してるサイト少ない。公式のコピーばっかり。
まず、使えるサーバーのPHPが 5.1のため、最新の1.10.8のZend_Frameworkが使えなかったので
1.8.1を利用した。(根拠はない)
こちらはイラストレータでアウトライン化されず読み込むことが出来た。(フォントを変更できるということ。)
これがフォントを埋め込んだからなのかは分からない。望むことはできたが
フォント埋め込んであるのでサイズが大きい。
ただし、このバージョンからなのかは分からないけれど、文字の幅の取得が出来ない。
サンプルでは glyphNumberForCharacter で文字コードが来る用になってるとおもうのだけど、
ソースみると、引数そのまま返してるし、 widthForGlyphは全角も半角も変わらない。
そもそもgetUnitsPerEmが引数なしなのがやる気なし。
あと、こちらは原点が左下。
普通左上から文字書いていくのだから、左上が原点が使いやすいと思うのだけど。
さらに、画像指定で urlが使えない。
これはソースちっと直せばすむが。