
Affinity 3のレイアウトペルソナでdvipdfmx由来のPDFをインポートするときの文字化け対策
はじめに 先日無償化が発表された Affinity 3。旧来のPublisher、Designer、Photoが統合され、ペルソナ を切り替えることで各機能を利用できる新しい体系に生まれ変わりました。 本記事では、その中の レイアウトペルソナ(DTP機能)に dvipdfmx で生成したPDFをインポートする際、日本語が文字化けする問題の原因と対策を考察します。 問題の発生条件 項目 内容 対象ソフトウェア Affinity 3(レイアウトペルソナ) バージョン 3.0.1.3808 インポートファイル dvipdfmx で日本語フォントを用いて生成されたPDF 発生現象 PDF内の日本語テキストが文字化けする 問題の状況 dvipdfmx で出力したPDFをAffinity 3のレイアウトペルソナにインポートすると、インポート前のページプレビューの段階から既に日本語テキストが文字化けしています。 さらに、Affinity 3が「見つからないフォント」として認識したものを、BIZ UDP明朝など別の日本語フォントに置き換えても、文字化けは解消されません。テキストの見た目のデザイン(フォントの持つ雰囲気)だけが変化し、文字の羅列は意味不明なままです。 なお、インポート時の読み込み対象を 「ページ」 または 「アートボード」 のいずれに設定しても、この現象は同様に発生します。 原因の切り分けと考察 切り分け まず、問題が dvipdfmx 側にあるのか、Affinity側にあるのかを切り分けます。 他のPDFビューアで確認する: 生成されたPDFをAdobe Acrobat Readerや一般的なウェブブラウザで開きます。 結果の判断: 他のビューアでも文字化けする場合: dvipdfmx の設定に問題がある可能性が高いです。 Acrobat等では正常だが、Affinity 3でのみ文字化けする場合: Affinity 3側のPDF解釈に起因する問題と考えられます。(今回のケースはこちらに該当します) 原因の考察:エンコーディングの問題か? フォントを正常なものに置き換えても文字化けが解消されないという現象は、単なる「フォントファイルが見つからない」という問題ではないことを強く示唆しています。 これは、PDF内部の 文字エンコーディング情報(どのバイトがどの文字に対応するかを定義する情報。専門的には CMap と呼ばれます)をAffinity 3が正しく解釈できていない可能性が高いです。 つまり、文字の「形」を収めたフォントデータはPDF内に存在していても、どのコードをどの「形」に割り当てるかの対応表が失われている、あるいはAffinity 3に無視されている状態と考えられます。そのため、dvipdfmx 側で単純にフォントの埋め込み方式を変えるだけでは解決しない可能性があり、根深い問題と言えます。 有効な対策 「テキストを曲線に変換」オプションが存在しない問題 回避策として一般的な「テキストを曲線(アウトライン)に変換」ですが、Affinity 3のPDFインポートダイアログには、そもそもこの選択肢自体が存在しません。 そのため、Affinity 3内で完結する手軽な解決策は現状なく、PDF生成側での調整、あるいは代替ツールでの対応が必須となります。 対策1: (非推奨) dvipdfmxでの設定見直しは極めて困難 原因がAffinity 3側のPDF解釈にある可能性が高い以上、dvipdfmx側での対応は非常に困難を極めます。 ...