ど素人から毛を生やす。<延>

wkhtmltopdfで全角1字・半角0.5字で表示できなかったときの話。

Web > PHP 2022年3月23日(最終更新:1月前)

どもです。
wkhtmltopdfで大苦戦したので備忘。

出力する文字数の制限がとても厳しいPDFの作成。
全角を1字、半角を0.5字とカウントし、○字×○行ピッタリに仕上げなければなりません。

こういう場合はMSゴシック(ド安定の印刷用フォント)やIPAゴシック(機種依存文字でちょっとズレる)などの等幅フォントを指定してやれば解決です。

ん???
MSゴシックで出力したのに、半角がズレている……??

これの原因と解決のためにかなりの苦闘をしていましたが、どうやら原因はフォントサイズの指定方法の模様。
フォントサイズが偶数pxでないと、半角の場合に正しく1/2されず、上記のようなズレが生じてしまっていたのでした。

ウチではwkhtmltopdf出力では寸法をmmで指定する慣習がありまして、このときのフォントサイズは4mm。
これを14pxに指定し直したところ、無事に全角1字・半角0.5字に配置することができました。

wkhtmltopdfはサーバー側のブラウザでHTML化されたものをレンダリングする仕組み、らしく。
ブラウザ出力という工程を挟む以上、寸法指定はピクセルで行った方が安定だなーと思った昼下がりでした。

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)
%d人のブロガーが「いいね」をつけました。