クロノス・クラウン - 記事検索

ツイート @rutenさんをフォロー
クロクロ ショップ 本、ゲーム、同人誌他を販売
クロクロ ツールズ 便利なWebアプリを多数収録
IT用語大辞典 IT用語を解説
ソフトウェア
めもりーくりーなー Winのメモリーをお掃除するソフト
Novel Supporter 小説推敲補助ソフト
PCソフト 便利なソフトを多数公開
Webサービス 便利で楽しいサービス多数
レトロゲームファクトリー レトロゲーム移植会社のお仕事小説
#電書ハック 電子書籍編集部のお仕事小説
顔貌売人 IT系ミステリ
裏切りのプログラム IT系ミステリ
ゲーム
Little Bit War Switch向け高速RTS
TinyWar high-speed 1ステージ数分の8bit風RTS
EX リバーシ 変形盤面、ステージ多数
PuzzleAndGame.com ブラウザで遊べるパズルやゲーム
同人活動
るてんのお部屋 コミケなどで活動(DL販売
no link
2022年05月17日 23:15:35
 2022年04月21日頃に、JavaScriptでPDFを生成するライブラリ『PDF-LIB』で、フォント サブセット(subset)化に失敗する現象を解決しました。その時の個人的な備忘録です。

 『PDF-LIB』は、フォントの利用に『@pdf-lib/fontkit』を使います。フォントはサブセット化(必要なデータだけ格納)でき、ファイルサイズを減らせます。しかし、一部の文字が表示されなくなる「サブセット化失敗」のバグがあります。

PDF-LIB
https://pdf-lib.js.org/

@pdf-lib/fontkit
https://github.com/Hopding/fontkit

 私は「BIZUDPGothic-Regular.ttf」を使うことでこのバグに遭遇しました。

BIZUDPGothic-Regular.ttf
https://github.com/googlefonts/morisawa-biz-ud-gothic

 このバグは、『PDF-LIB』の作者は認識していて、『@pdf-lib/fontkit』のバグなので、自分は対処しないと回答しています。

custom font font subset with Chinese font does not work properly
https://github.com/Hopding/pdf-lib/issues/494

 『@pdf-lib/fontkit』は更新が止まっています。この『fontkit』の本家は現在1.8.1で、サブセット化のバグが1.8.0で取れていると報告されています。

fontkit fails to create working subset for some fonts
https://github.com/foliojs/fontkit/issues/188

 『@pdf-lib/fontkit』は、『fontkit』を『PDF-LIB』用に改造してあり、「fontkit.umd.js」は約4万4700行あります。このコードと、本家の『fontkit』を見比べて、サブセット化のバグ解消について実験をおこないました。

 「subset」「Subset」でコードを検索して、おおまかな処理の当たりを付けて、その後、実際にどの部分が処理に使われているか絞り込んでいきました。そして怪しい変数の値を見て、原因を探っていきました。

 最終的に「fontkit.umd.js」の4万940行あたりの「TTFSubset」の「prototype」の「encode」に、以下のような追記をおこないました。これで私の場合の問題は解決しました。

this.loca = {
offsets: []
,version: this.font.loca.version // 修正箇所
};

 他の方の参考になるかもしれないので、記録を残しておきます。
最新20件 (全て見る)

柳井が執筆した本や商品 (全て見る

マンガでわかるJavaScriptのPromise
JavaScriptのPromiseをマンガで解説。無料。
レトロ風RPG 全コード
JSのレトロゲーム風RPGの全コードを掲載&解説。
タワーディフェンス 全コード
JSのタワーディフェンスの全コードを掲載&解説。
レトロゲームファクトリー
過去のゲームを最新機用に移植する会社のお仕事小説。新潮社より発売中。
#電書ハック
電子書籍編集部のお仕事小説。文藝春秋より発売中。
顔貌売人 ハッカー探偵 鹿敷堂桂馬
シリーズ第2弾。文藝春秋より発売中。
裏切りのプログラム ハッカー探偵 鹿敷堂桂馬
松本清張賞の最終候補に残った拙作小説(デビュー作)。

サイト目次

PCソフト/Webアプリ/ゲーム

記事/マンガ

柳井の同人活動

開発

携帯・スマホ

アナログ・ゲーム

Cronus Crown(クロノス・クラウン)のトップページに戻る
(c)2002-2024 Cronus Crown (c)1997-2024 Masakazu Yanai
ご意見・お問い合わせはサイト情報 弊社への連絡までお願いします
個人情報の取り扱い、利用者情報の外部送信について