MacでAffinityのPDF書き出し失敗に関係するページを見つけるには、同じ設定でページ範囲を狭めながら書き出し、失敗する範囲を絞り込みます。疑わしいページだけを書き出し、そのページを除いた残りのページも書き出して、結果を確認します。
このガイドでは、現在のAffinityデスクトップアプリで、ページ単位の複数ページドキュメントを扱います。目的は、ドキュメントの内容を変更する前に、再現可能な失敗を特定することです。以下の範囲テスト手順は、Affinityで説明されている書き出しコントロールに基づく診断方法であり、組み込みの自動障害検出機能ではありません。
Affinityで自動的に特定できること
Affinityのプリフライトパネルでは、有効なチェックプロファイルで対象となる問題を特定できます。パネルで今すぐチェックをクリックし、項目にカーソルを合わせて詳細を確認します。項目をダブルクリックすると、その位置に移動できます。修正ボタンが表示されるのは、一部の問題の種類のみです。これらは、報告された問題に直接移動するための、Affinityが説明している方法です。Affinityのプリフライトに関するドキュメント
書き出しを繰り返す前に、プリフライトを確認してください。説明されているチェック項目には、フォントの欠落、リンクリソースの欠落または古さ、配置したPDFの欠落や破損などがあります。ただし、配置したPDFがラスタライズされるという項目は、書き出し時の処理を示すものであり、それだけで書き出し失敗の原因が確定するわけではありません。プリフライトのチェック項目とPDFパススルーのメッセージ
公式の書き出しダイアログおよびプリフライトのドキュメントには、あらゆるPDF書き出しエラーで失敗するページを確実に示すコマンドは記載されていません。そのため、プリフライトで明確な結果が得られても、どの出力要求で失敗が再現するのかという別の疑問が残ります。ページ範囲を変えて書き出しを制御しながら行うことで、その疑問に答えられます。書き出しダイアログ、プリフライト
範囲を絞る前に、再現可能な書き出しを確認する
ドキュメントを保存し、内容を変更する前に別の作業用コピーを作成してください。最初のテストではレイアウトをそのままにします。ページを削除すると、診断対象のドキュメントが変わってしまいます。
失敗した書き出しで使用したPDFプリセットとカスタム設定を記録してください。範囲テストの間は、その設定、保存先フォルダー、ドキュメントの内容を一定に保ちます。各試行には test-01-16.pdf のような固有のファイル名を付け、以前に成功したファイルを最新の結果と取り違えないようにします。
ページ単位のドキュメントについて、Affinityではすべてのページは見開きレイアウトの左右ページを別々に含む個々のページを書き出す設定として説明されています。すべての見開きでは、各見開きを1ページのPDFとして書き出します。出力の単位が異なるため、最初に失敗したのがどちらの設定か記録してください。Affinityの出力範囲の設定
個別ページを調べるには、次の設定を使います。
- ファイル > 書き出し > 書き出しを選択します。
- 失敗した試行で使用したPDFプリセットを選び、カスタム設定を維持します。
- 範囲をすべてのページに設定します。
- ページに必要な範囲を入力します。
- 保存先を確認を選び、書き出しをクリックしてテストファイルに名前を付け、保存をクリックします。
Affinityでは、4-17 のような範囲、4,5,6 のような個別の番号、4-5,19,27,39 のような組み合わせが説明されています。すべてのページまたはすべての見開きを選ぶと、ページフィールドが使用可能になります。書き出しダイアログの手順
まず、すべてのページを選んでドキュメント全体を書き出し、失敗を再現します。これが成功し、元のすべての見開きでの書き出しが失敗する場合は、以下の見開き専用の手順に進みます。出力の単位を変えた後に書き出しが成功すれば比較材料になりますが、それだけでは不具合のあるページを特定したことにはなりません。
書き出しに成功したら、そのPDFを開き、意図した内容とページ数が含まれていることを確認してください。これにより、ページ範囲の入力を正しく解釈できたかも確認できます。ページ番号の対応が不明確な場合は、Affinityが現在選択中のページを書き出すと説明している現在のページを使い、見分けやすいページと照合します。現在のページの書き出し動作
両方の半分をテストして失敗範囲を絞り込む
ドキュメント全体で失敗が安定して再現することを確認したら、ページ範囲をほぼ同じ数になるように二分します。それぞれを別々に書き出します。失敗した範囲を、再現可能な最小の範囲に1ページだけが含まれるまで分割し続けます。
両方の半分をテストしてください。前半が成功しても後半が失敗するとは限らず、一方が失敗しても他方に問題がないとは限りません。両方の結果を記録しておけば、複数ページが関係する場合にもこの方法を役立てられます。
使用例:架空の32ページドキュメント
無難なテキストと単純な幾何学図形を含む32ページのドキュメントで、書き出しに失敗するとします。以下の結果は説明用であり、Affinityでのテスト結果ではありません。
| 回 | 別々に書き出す範囲 | 結果の例 | 次の操作 |
|---|---|---|---|
| 1 | 1-16 と 17-32 |
前者は成功、後者は失敗 | 17-32 を分割する |
| 2 | 17-24 と 25-32 |
前者は失敗、後者は成功 | 17-24 を分割する |
| 3 | 17-20 と 21-24 |
前者は成功、後者は失敗 | 21-24 を分割する |
| 4 | 21-22 と 23-24 |
前者は成功、後者は失敗 | 23ページと24ページを別々にテストする |
| 5 | 23 と 24 |
23ページは失敗、24ページは成功 | 23ページと、それを除いた範囲を確認する |
この例では、5回の分割で候補となる32ページを1ページまで絞り込めます。両方の半分をテストすると、確認前に10回の書き出しが必要です。この計算は、ページ単位の一貫した失敗が1つあることを前提としています。実際のドキュメントでは、追加の分岐が必要になったり、1ページだけに切り分けられなかったりする場合があります。
各範囲、ファイル名、設定、結果を簡単に記録してください。書き出しに成功した場合は、PDFを確認したことも記録します。失敗した場合は、エラーメッセージ、アプリの終了、処理が完了しなかった試行など、何が起きたかを記録します。完了したかどうか不明な場合は、確定した失敗として扱わず、「判定不能」と記録してください。
疑わしいページが失敗の原因か確認する
単独で失敗するページが見つかったら、設定を変えずにそのページだけを書き出し、もう一度確認します。次に、そのページを除いたドキュメントの残りを書き出します。使用例では、23ページ以外のすべてをテストするには 1-22,24-32 と入力します。Affinityでは、複数の範囲と個別のページ番号を組み合わせて指定できます。ページフィールドで使用できる入力
実用上、最も確かな結果は、ドキュメント全体で失敗し、疑わしいページだけでも失敗し、そのページを除いた残りのページは正常に書き出される、という3つの結果が繰り返し確認できるパターンです。この場合、記録した設定のもとで、そのページが失敗に関係していると説明できます。ただし、原因となった特定のオブジェクト、フォント、配置ファイル、書き出し処理までは特定できません。
残りのページでも失敗する場合は、その範囲の分割を続けてください。別の失敗ページが見つかることもあれば、最初のページだけという説明が不十分だとわかることもあります。疑わしいページを除くことで残りの出力の失敗が解消するまでは、そこで作業を終えないでください。
範囲テストでページを1つに絞り込めない場合
この方法は、書き出しを要求するページの集合を変えても、失敗が再現することを前提としています。絞り込みを続けるかどうかは、以下の結果を参考にしてください。
| 観察された結果 | 確認できること | 次に行うテスト |
|---|---|---|
| 一方の半分は失敗し、もう一方は成功する | より小さい範囲で失敗を再現できる | 失敗した半分を分割する |
| 両方の半分が失敗する | 複数の範囲で失敗を再現できる | 両方の範囲を調べる |
| 両方の半分は成功するが、まとめた範囲では失敗する | 失敗を1ページに絞り込めていない | 同じ設定で、まとめた範囲を再テストする |
| 各ページを単独で書き出すと成功するが、全体の書き出しは失敗する | 個別に失敗するページは確認できていない | 繰り返し失敗する最小の組み合わせを探す |
| 同じテストをしても成功と失敗が交互に起きる | 信頼できる絞り込みを行うには結果が安定していない | 基準となるテストを繰り返し、結果の変動を記録する |
これらは診断上の解釈であり、Affinityが定めたエラー分類ではありません。たとえば、両方の半分が成功しても、あらゆる組み合わせで全ページに問題がないことの証明にはなりません。確認できるのは、分けて要求した2つの書き出しが完了したことだけです。
どのページも単独では失敗しない場合は、問題を再現する最小の組み合わせを記録してください。「17〜24ページをまとめると失敗するが、17〜20ページと21〜24ページは別々に書き出せる」という具体的な結果は、根拠のない原因を名指しするよりも役に立ちます。
元の失敗が見開きでのみ発生する場合
ページ範囲を狭める際もすべての見開きを維持し、書き出しに成功した出力でどの見開きが含まれているかを確認します。Affinityの説明によると、見開きは1ページのPDFになり、このモードでもページフィールドは使用できます。見開き出力の設定、範囲の選択
疑わしい見開きが見つかったら、現在の見開きで比較し、その見開きを構成する各ページを現在のページで個別にテストします。見開きでは失敗する一方、各ページ単独では成功する場合は、見開きに関連する失敗として報告します。この結果だけで、個々のページのいずれかに不具合があるとは断定できません。
ページを特定した後に行うこと
疑わしい位置のプリフライトに戻ってください。PDFに関する具体的な制限の1つとして、ダッシュパターンに含められる要素は12個以下です。より複雑なパターンの線は、プリフライトで報告されることがあります。この問題が実際に見つかった場合は、作業用コピーで修正し、同じ書き出しをもう一度行ってください。ドキュメントに破線の図形が含まれているだけで、それが失敗の原因だと決めつけないでください。プリフライトで説明されている制限
さらに調べる場合は、作業用コピーで疑わしい項目を一度に1つだけ変更し、1ページのテストを繰り返します。内容を変更してテストする間は、元の書き出し設定を固定してください。そうしないと、書き出しが成功しても、どの変更が影響したのか判断できません。
ラスタライズ設定を意図的に比較する場合は、別の実験として扱います。Affinityの説明では、すべてはすべてのデザイン要素をラスタライズし、サポートされていないプロパティは未対応の要素をラスタライズし、なしは未対応の要素をラスタライズせずに省略します。そのため、なしを選ぶと出力からコンテンツが欠落する可能性があります。設定を変更した書き出しが完了した場合も、目視で確認が必要です。また、それだけで元の失敗が修復されたとは確認できません。ラスタライズの書き出し設定
最後に、使用するページまたは見開きのモードと最終設定でドキュメント全体を書き出し、PDFを確認します。これが成功するまでは、失敗した範囲の記録を保管してください。最終的な成果は、調査対象となるページを確認できること、または単一ページの診断では説明できないことを示す、正確で再現可能な範囲の失敗を特定することです。