TL;DR
問題: GhostScript(v8.7)で連結したPDFの、日本語のうちいくつかの文字が文字化けしてしまう…
回避策: 9.23 に上げたら直った
背景1 GhostScript で複数のPDFファイルを連結
wkhtmltopdf で何枚かのviewをPDF化し、バックグラウンドで表紙PDFと目次PDFを対象に含めて連結するみたいなことをしていた。
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=#{file_path}/#{output_file_name} #{files_str}
みたいなやつ。
環境はAWSのamazon linuxに日本語フォントはIPAゴシックのみ入れた状態。
そうすると一部の文字が見つからないような感じ。
かなしい | 本当はこう |
---|---|
背景2 原因がだいぶわからずつらい
- 多くの日本語はうまくいった。これが起こったのは1%程度だった。
- 連結前の wkhtmltopdf で生成したPDFは問題なかった
- 文字特有というわけでなく、他ページでも「雑給」は問題なく出力されていた。ただ、このページのこの箇所では絶対に再現するというような感じ。
対応
cidfmap 対応しても変わりなし
回避が大変そうなのと、バージョンアップすると変換エラーが出ないかもしれない情報(Ubuntu で ghostscript 9.0.7)もあり、yumで入れたghostscriptを引っこ抜き、ソースからコンパイルした。
結果
直った〜
たいへん参考になった記事
http://d.hatena.ne.jp/donbulinux/20150319/1426764756
http://kamae-norihiro.blogspot.com/2012/11/japanese-font-ghostscript.html
https://qiita.com/iharakenji/items/476e8b32e4e7a3c1a274