1
0

More than 1 year has passed since last update.

【Ruby】Prawn で生成した PDF に旧字体が含まれていると文字化けしてしまう場合の対処法

Last updated at Posted at 2022-12-24

背景

タイトル通り、Prawn で生成した PDF に旧字体が含まれていると文字化けしてしまう現象が発生。

ex. 「高瀬 真守」という名前のユーザー情報を PDF 出力(※「瀬」は旧字体)

スクリーンショット 2022-12-25 5.10.49.png

ご覧のように上手く出力ができていません...。

原因

フォントの設定に問題がありました。

class PdfeGenerator < Prawn::Document
  def initialize
    super(page_size: "A4", margin: 20)

    font Rails.root.join("app/assets/fonts/mplus-2p-regular.ttf")
  end
end

どうやらこの mplus-2p-regular.ttf というフォントが旧字体に対応していない模様。

これを日本語に特化したフォントである IPA フォント に変更してみたところ、文字化けせずに無事出力されるようになりました。

- font Rails.root.join("app/assets/fonts/mplus-2p-regular.ttf")
+ font Rails.root.join("app/assets/fonts/ipaexg.ttf")

スクリーンショット 2022-12-25 5.18.09.png

まとめ

特に理由もなく適当に設定したフォントのせいで文字化けを起こしてしまっていたという話です。

技術者である以上、何事も良く調べて吟味するのは大事だなと痛感しました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0