PDF/X-4変換時に.notdefグリフの参照エラーが出たらどうするか
はじめに
いつもブログをご覧いただきありがとうございます。
ミジンコに転生したIPUSIRONです😀
Adobe Acrobat ProのプリフライトからPDF/X-4に変換しようとした際に、.notdefグリフのエラーが発生してしまいました。
初めて見たエラーだったので焦りましたが、なんとか解決できたので忘備録として記録しておきます。
事の顛末
技術書典19の新刊の入稿PDFデータを作成する過程で、「本文PDFをグレースケール化⇒PDF/X-4に変換」というワークフローがあります。

その最後の行程である「PDF/X-4の変換」において、以下のエラーが発生しました。

エラーの詳細には「テキストには.notdefグリフにマップされた文字が含まれています。.notdefグリフは直接参照できませんが、存在しないグリフのプレースホルダーとして試用されます」とあります。
.notdefはダミー字形
“.notdef"(ノットデフ) は、フォントに該当グリフが存在しないときに代わりに使われるダミー字形です。
四角い豆腐や空欄として出力されます。
PDF/X-4は未定義グリフを許容しません。
原因はUnicode絵文字の存在
「1個の当該箇所:1ページ」とあったので、1ページを見ると、そこは大扉[1]大扉とは、書籍の冒頭にある、書名・著者名・出版社名などが印刷されたページです。でした。大扉の本文を確認しても、特に問題はなさそうに感じました。
そこで、「PDF解析」>「潜在的なフォントの問題を一覧表示」から解析してみました。

その結果が以下のとおりです。
.notdefグリフの参照しているのは115ページと判明しました。

本文を確認したところ、ソースコード内にUnicode絵文字がありました。

PDFでは、絵文字が文字化けしていました(豆腐になっていました)。

本来であればPDF校正のときに気づくべきことでしたが、ソースコード内だったため完全に見落としていたようです。
一番簡単なのはソースコードから当該絵文字を削除してしまうことでしょう。実装に直接影響がないのであればなおさらです。ここでは絵文字を削除するという案を採用しました。
生成AIが出力するソースコードやテキストには、絵文字が多用されがちです。
それを本文に書き込んでいる際には注意が必要だということです。
※スクリーンショットであれば問題なし。
修正してから、再度PDF/X-4に変換したところ、無事うまくいきました。

おわりに
入稿用PDFを作成するのは、たいてい入稿の直前です。人によっては、締め切り当日や前日ということもあるでしょう。
そんなときに今回のような問題が発生してしまうと、つい焦ってしまいがちです。
修正するにしても手戻りが発生し、「文字化け対応⇒ビルドしてPDF生成⇒グレースケール化⇒PDF/X-4変換」の流れを、再度やり直すことになってしまいます。
そうならないためには、「執筆時点で気をつける」「校正をしっかり行う」といった、基本的な対策しかありません。あとは、締め切りギリギリに作業しないよう、余裕を持って入稿することくらいでしょうか。
References
| ↑1 | 大扉とは、書籍の冒頭にある、書名・著者名・出版社名などが印刷されたページです。 |
|---|

























