若要在 Mac 上找出與 Affinity PDF 匯出失敗相關的頁面,請使用相同設定匯出較小的頁面範圍,再逐步縮小失敗範圍。單獨匯出可疑頁面,以及匯出排除該頁後的其餘頁面,以確認結果。

本指南適用於目前 Affinity 桌面版應用程式中的多頁、以頁面為基礎的文件。目標是在變更文件內容前,找出可重現的失敗。以下的範圍測試程序是根據 Affinity 已說明的匯出控制項所制定的診斷方法,並非內建的自動故障查找工具。

Affinity 能自動識別哪些問題?

Affinity 的 Preflight 面板可以找出其作用中檢查設定檔涵蓋的問題。在面板中按一下 Check Now,將滑鼠游標停在項目上可查看詳細資訊,並按兩下項目即可前往其所在位置。只有部分問題類型會提供 Fix 按鈕。這些都是直接前往已回報問題的已說明方法。Affinity 的 Preflight 說明文件

重複匯出前請先檢查 Preflight。其已說明的檢查項目包括缺少字型、缺少或過期的連結資源,以及遺失或損毀的置入 PDF。不過,若項目指出置入的 PDF 將會點陣化,這描述的是匯出處理方式;僅憑這點,無法判定它是匯出失敗的原因。Preflight 檢查與 PDF passthrough 訊息

官方的 Export 對話方塊與 Preflight 說明文件,並未提及一個能在所有 PDF 匯出錯誤中可靠指出失敗頁面的命令。因此,即使 Preflight 沒有顯示問題,仍須回答另一個問題:哪些所要求的輸出會重現失敗?透過受控的頁面範圍匯出,有助於回答這個問題。Export 對話方塊、Preflight

縮小範圍前,先建立可重複的匯出流程

儲存文件,並在變更內容前另存一份工作副本。第一次測試時,請保持版面配置不變。移除頁面會改變正在診斷的文件。

記錄失敗匯出所使用的 PDF 預設集和任何自訂設定。在所有範圍測試中,保持這些設定、目標資料夾和文件內容不變。每次嘗試都使用不同的檔名,例如 test-01-16.pdf,以免將舊的成功檔案誤認為最新結果。

對於以頁面為基礎的文件,Affinity 說明 All Pages 會匯出個別頁面,包括跨頁版面配置中的左頁與右頁。All Spreads 則會將每個跨頁匯出為一個 PDF 頁面。這兩種輸出的邊界不同,因此請記錄原本失敗的是哪一種。Affinity 的 Area 匯出設定

調查個別頁面時,請使用以下設定:

  1. 選擇 File > Export > Export。
  2. 選取失敗嘗試所使用的 PDF 預設集,並保留自訂設定。
  3. 將 Area 設為 All Pages。
  4. 在 Pages 中輸入所需範圍。
  5. 選擇 Ask for Location,按一下 Export,為測試檔命名,再按一下 Save。

Affinity 說明的範圍格式包括 4-17、個別頁碼(例如 4,5,6),以及組合格式(例如 4-5,19,27,39)。選擇 All Pages 或 All Spreads 後,Pages 欄位即可使用。Export 對話方塊操作說明

先使用整份文件和 All Pages 重現失敗。如果這樣匯出成功,但原本的 All Spreads 匯出失敗,請接著依照下方的跨頁專用步驟處理。變更輸出邊界後匯出成功,可作為有用的比較結果,但這並未找出有問題的頁面。

每次測試成功後,都要開啟產生的 PDF,確認內容與頁數正確。這也能檢查你對頁面範圍輸入方式的理解。如果頁碼有歧義,請使用 Current Page 比對可辨識的頁面;Affinity 說明此選項會匯出目前作用中的頁面。Current Page 匯出行為

測試兩半範圍,逐步縮小失敗位置

整份文件的失敗可穩定重現後,將頁面範圍大致平均分成兩半,分別匯出。若其中一半失敗,就繼續將該範圍分割,直到最小的可重現失敗範圍只包含一頁。

兩半都要測試。第一半匯出成功,並不能證明第二半會失敗;其中一半失敗,也不能證明另一半沒有問題。記錄兩邊的結果,才能在涉及多個頁面時有效運用此方法。

範例:一份虛構的 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 頁及其補集

在此範例中,經過五個回合,32 個候選頁面縮小為一頁。測試兩半共需匯出十次,之後再進行確認。此計算假設失敗一致且僅限單一頁面;實際文件可能需要更多分支,或無法隔離出單一頁面。

簡要記錄每個範圍、檔名、設定與結果。若匯出成功,請註明你已檢查 PDF。若匯出失敗,請記錄發生的情況:錯誤訊息、應用程式退出,或嘗試未完成。若無法確定是否完成,請記為未定論,不要當作已確認的失敗。

確認可疑頁面是否能解釋失敗

找出單獨匯出會失敗的頁面後,使用未變更的設定再次匯出該頁。接著匯出排除該頁後的其餘文件。在虛構範例中,輸入 1-22,24-32 可測試除第 23 頁以外的所有頁面;Affinity 支援混合範圍和個別頁碼。支援的 Pages 輸入格式

最有力的實用結果,是可重複出現以下三種情況:整份文件匯出失敗、可疑頁面單獨匯出失敗,而其餘頁面成功匯出。根據已記錄的設定,這足以支持將該頁描述為與失敗相關。但這無法指出是什麼特定物件、字型、置入檔案或匯出操作造成問題。

如果其餘頁面仍然失敗,請繼續分割該範圍。你可能會找到另一個失敗頁面,也可能發現原先對單一頁面的解釋並不完整。除非排除該頁後,其餘輸出能成功匯出,否則不要停在第一個可疑頁面。

如果範圍測試無法隔離出單一頁面,該怎麼辦?

此方法仰賴改變所要求的頁面集合時,失敗仍能重現。請參考下表的結果,判斷是否繼續縮小範圍。

觀察到的結果 可確定的事項 下一個有效測試
一半失敗,另一半成功 較小的指定範圍可重現失敗 分割失敗的那一半
兩半都失敗 多個範圍都能重現失敗 調查兩個分支
兩半都成功,但合併後的範圍失敗 尚未將失敗隔離到單一頁面 使用未變更的設定重複測試合併範圍
每頁單獨匯出都成功,但完整匯出失敗 尚未證明有任何單頁匯出會失敗 找出可重複發生失敗的最小組合
相同測試時而成功、時而失敗 結果不夠穩定,無法可靠縮小範圍 重複基準測試並記錄變化

這些是診斷上的解讀,並非 Affinity 說明的錯誤分類。例如,兩半都能匯出成功,不代表每一頁在所有組合中都沒有問題;只能證明這兩次個別匯出請求已完成。

如果沒有任何單頁匯出會失敗,請保留能重現問題的最小組合。像是「第 17 至 24 頁一起匯出會失敗,但第 17 至 20 頁和第 21 至 24 頁分別匯出都成功」這樣精確的發現,比指稱一個缺乏根據的元兇更有用。

如果原始失敗只在跨頁模式下發生

縮小指定範圍時,請保留 All Spreads,並檢查成功的輸出,確認包含哪些跨頁。Affinity 說明的行為是將每個跨頁轉為一個 PDF 頁面;在此模式下,Pages 欄位仍可使用。跨頁輸出設定、範圍選取

找到可疑跨頁後,請使用 Current Spread 比較,再使用 Current Page 分別測試其中的頁面。如果跨頁匯出失敗,但其中兩個單頁都成功,請將結果描述為與跨頁相關的失敗。這些結果不足以判定其中任一單頁有問題。

找到頁面後該怎麼做

返回可疑位置的 Preflight。Affinity 說明的一項具體 PDF 限制是,虛線樣式必須包含 12 個或更少的項目;Preflight 可以回報樣式較複雜的筆畫。如果確實存在這個問題,請在工作副本中修正,再重複相同的匯出。不要只因文件中有虛線圖形,就假設這是失敗原因。已說明的 Preflight 限制

若要進一步調查,請在工作副本中一次只變更一個可疑項目,並重複單頁測試。測試內容變更時,固定原本的匯出設定。否則,即使某次嘗試成功,也無法判斷是哪項變更產生影響。

如果要比較點陣化設定,請將其視為獨立實驗。Affinity 說明 Everything 會將所有設計元素點陣化,Unsupported properties 會將不支援的元素點陣化,而 Nothing 會省略不支援的元素,而非將其點陣化。因此,選擇 Nothing 可能會使輸出內容減少。使用變更後的設定完成匯出,需要進行視覺檢查,也無法證明原本的失敗已修復。點陣化匯出設定

最後,使用預定的頁面或跨頁模式和最終設定,重複匯出整份文件,然後檢查 PDF。在成功前,請保留失敗範圍的記錄。有效的結果要麼是確認一個待調查的頁面,要麼是精確且可重現的範圍失敗,足以說明為何無法支持單頁診斷。

來源