React-pdfで、文書全体に以下の設定を適用する方法
- 改行時にハイフンを入れないようにする
- 単語の途中で改行する
こちらにスマートな解決法がありました。
Font.registerHyphenationCallback((word) =>
Array.from(word).flatMap((char) => [char, ''])
)
解説
React-pdfで改行時の体裁を変更するには、
Font.registerHyphenationCallbackでメソッドをオーバーライドする。
この時、文章が単語ごとに区切られてwordとしてメソッドに渡されるのだが、
その区切り方は英語に準拠したものとなっているため、日本語の単語では適切に区切られない場合がある。
そこで、メソッドに1文字づつをwordとして認識させ、単語の区切りを気にせずどこでも改行するようにする。
改行時に挿入される文字には''を指定して、'-'と置き換える。