Чтобы найти страницу, связанную со сбоем экспорта PDF в Affinity на Mac, экспортируйте небольшие диапазоны страниц с теми же настройками, а затем сузьте диапазон, в котором возникает сбой. Подтвердите результат, экспортировав подозрительную страницу отдельно, а затем остальные страницы без неё.

Это руководство посвящено многостраничному документу с постраничной структурой в актуальном настольном приложении Affinity. Цель — найти воспроизводимый сбой, прежде чем менять содержимое документа. Описанный ниже способ проверки диапазонов — диагностический метод, основанный на документированных настройках экспорта Affinity; это не встроенный автоматический поиск неисправностей.

Что Affinity может определить автоматически?

Панель «Допечатная проверка» в Affinity позволяет находить проблемы, предусмотренные активным профилем проверки. На панели нажмите Проверить сейчас, наведите указатель на запись, чтобы увидеть подробности, и дважды щёлкните по ней, чтобы перейти к месту с проблемой. Кнопка Исправить доступна только для некоторых типов проблем. Это документированные способы перейти непосредственно к обнаруженной проблеме. Документация Affinity по допечатной проверке

Перед повторными экспортами проверьте документ с помощью допечатной проверки. Среди задокументированных проверок — отсутствие шрифтов, отсутствие или устаревшие связанные ресурсы, а также отсутствующий или повреждённый помещённый PDF. Однако сообщение о том, что помещённый PDF будет растрирован, описывает способ обработки при экспорте и само по себе не устанавливает причину сбоя экспорта. Проверки допечатной подготовки и сообщения о прямой передаче PDF

В официальной документации по диалоговому окну «Экспорт» и допечатной проверке не описана команда, которая надёжно определяет страницу, вызывающую любую ошибку экспорта PDF. Поэтому, даже если допечатная проверка ничего не обнаружила, остаётся вопрос: какой из запрошенных вариантов вывода, если таковой есть, воспроизводит сбой? На него помогут ответить экспорты контролируемых диапазонов страниц. Диалоговое окно «Экспорт», Допечатная проверка

Настройте повторяемый экспорт перед сужением диапазона

Сохраните документ и создайте отдельную рабочую копию, прежде чем менять содержимое. Для первых проверок оставьте макет без изменений. Удаление страниц изменило бы документ, который вы пытаетесь диагностировать.

Запишите предустановку PDF и все изменённые настройки, использованные при неудачном экспорте. Во всех проверках диапазонов сохраняйте эти настройки, папку назначения и содержимое документа неизменными. Присваивайте каждой попытке уникальное имя, например test-01-16.pdf, чтобы не перепутать старый успешно созданный файл с результатом последней попытки.

Для документа с постраничной структурой Affinity описывает режим Все страницы как экспорт отдельных страниц, в том числе отдельных левых и правых страниц разворота. В режиме Все развороты каждый разворот экспортируется как одна страница PDF. Эти варианты вывода имеют разные границы, поэтому запишите, какой из них изначально завершился сбоем. Настройки области экспорта в Affinity

Для проверки отдельных страниц используйте следующие настройки:

  1. Выберите Файл > Экспорт > Экспорт.
  2. Выберите предустановку PDF, использованную при неудачной попытке, и сохраните пользовательские настройки.
  3. Для параметра Область выберите Все страницы.
  4. Укажите нужный диапазон в поле Страницы.
  5. Выберите Спросить о месте сохранения, нажмите Экспортировать, задайте имя тестовому файлу и нажмите Сохранить.

Affinity документирует диапазоны, например 4-17, отдельные номера, например 4,5,6, и комбинации, например 4-5,19,27,39. Поле Страницы доступно в режимах Все страницы и Все развороты. Инструкции к диалоговому окну «Экспорт»

Сначала воспроизведите сбой, экспортировав весь документ в режиме Все страницы. Если экспорт проходит успешно, а исходный экспорт в режиме Все развороты завершается сбоем, продолжите проверку по ветке для разворотов ниже. Успешный экспорт после изменения границ вывода — полезный результат для сравнения, но он не указывает на неисправную страницу.

Открывайте каждый полученный PDF и проверяйте, что он содержит нужный контент и нужное число страниц. Это также поможет убедиться, что диапазон введён правильно. Если нумерация вызывает сомнения, сравните узнаваемую страницу с помощью режима Текущая страница, который, согласно документации Affinity, экспортирует активную страницу. Как работает экспорт текущей страницы

Сужайте диапазон, проверяя обе половины

Как только вы убедились, что сбой всего документа повторяется, разделите диапазон страниц примерно пополам. Экспортируйте каждую половину отдельно. Продолжайте делить диапазон, в котором возникает сбой, пока не останется минимальный воспроизводящий его диапазон из одной страницы.

Проверяйте обе половины. Успешный экспорт первой половины не означает, что сбой происходит во второй, а сбой в одной половине не означает, что в другой проблем нет. Результаты обеих проверок полезны, если затронуто несколько страниц.

Пример: синтетический документ на 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 поддерживает смешанные диапазоны и отдельные номера страниц. Допустимый ввод в поле «Страницы»

Наиболее убедительный практический результат — повторяемая последовательность из трёх частей: экспорт всего документа завершается сбоем, экспорт подозрительной страницы отдельно тоже завершается сбоем, а остальные страницы экспортируются успешно. Это позволяет сказать, что при записанных настройках сбой связан с этой страницей. Однако по такому результату нельзя установить, какой именно объект, шрифт, помещённый файл или операция экспорта его вызывает.

Если экспорт остальных страниц по-прежнему завершается сбоем, продолжайте делить этот диапазон. Вы можете найти ещё одну страницу, вызывающую сбой, или обнаружить, что исходное предположение об одной странице было неполным. Не останавливайтесь на первой подозрительной странице, если её исключение не устраняет сбой при экспорте остальной части документа.

Что делать, если проверки диапазонов не позволяют изолировать одну страницу?

Этот метод работает, только если сбой продолжает воспроизводиться при изменении набора запрошенных страниц. Используйте приведённые ниже результаты, чтобы решить, стоит ли продолжать сужение диапазона.

Наблюдаемый результат Что он подтверждает Какую проверку провести дальше
В одной половине экспорт завершается сбоем, в другой проходит Сбой воспроизводится на меньшем диапазоне страниц Разделить диапазон со сбоем
В обеих половинах экспорт завершается сбоем Сбой воспроизводится для нескольких диапазонов Проверить обе ветви
Обе половины экспортируются успешно, но при их объединении происходит сбой Не удалось установить, что сбой связан с одной страницей Повторить экспорт объединённого диапазона с теми же настройками
Каждая страница экспортируется отдельно, но экспорт всего документа завершается сбоем Не удалось обнаружить сбой на отдельной странице Найти наименьшее сочетание страниц, для которого сбой повторяется
Результат одинаковых проверок попеременно бывает успешным и неудачным Результаты недостаточно стабильны, чтобы надёжно сужать диапазон Повторить исходную проверку и записать изменения результата

Это диагностические интерпретации, а не классификация ошибок, задокументированная Affinity. Например, то, что обе половины экспортировались успешно, не доказывает, что ни одна страница не вызовет проблем при экспорте в любом сочетании. Это означает лишь, что два отдельных запроса на экспорт завершились успешно.

Если ни одна страница не вызывает сбой при отдельном экспорте, сохраните наименьшее сочетание страниц, для которого проблема воспроизводится. Точная формулировка, например «при совместном экспорте страниц 17–24 происходит сбой, тогда как страницы 17–20 и 21–24 экспортируются отдельно», полезнее, чем необоснованное указание предполагаемой причины.

Если исходный сбой возникает только при экспорте разворотов

При сокращении диапазона оставьте режим Все развороты и проверьте успешный экспорт, чтобы убедиться, какие развороты вошли в PDF. Согласно документации Affinity, каждый разворот становится одной страницей PDF; поле «Страницы» в этом режиме остаётся доступным. Настройки вывода разворотов, Выбор диапазона

Определив подозрительный разворот, сравните его экспорт с режимом Текущий разворот, а затем проверьте входящие в него страницы отдельно в режиме Текущая страница. Если экспорт разворота завершается сбоем, а обе отдельные страницы экспортируются успешно, сообщите о сбое, связанном с разворотом. Эти результаты не дают оснований объявлять неисправной какую-либо отдельную страницу.

Что делать после обнаружения страницы

Перейдите к подозрительному месту и снова запустите допечатную проверку. Одно конкретное задокументированное ограничение PDF состоит в том, что шаблоны штриховки должны содержать не более 12 элементов; допечатная проверка может сообщить о штрихе с более сложным шаблоном. Если такая проблема обнаружена, исправьте её в рабочей копии и повторите тот же экспорт. Не считайте её причиной сбоя только потому, что в документе есть пунктирная графика. Задокументированные ограничения допечатной проверки

Для дальнейшего исследования вносите в рабочую копию по одному изменению за раз и повторяйте проверку отдельной страницы. При проверке изменений содержимого сохраняйте исходные настройки экспорта. Иначе после успешной попытки вы не поймёте, какое изменение повлияло на результат.

Если вы намеренно сравниваете настройки растрирования, проводите это как отдельный эксперимент. Согласно документации Affinity, режим Всё растрирует все элементы дизайна, режим Неподдерживаемые свойства растрирует элементы с неподдерживаемыми свойствами, а режим Ничего исключает неподдерживаемые элементы из вывода, не растрируя их. Поэтому выбор режима Ничего может привести к потере содержимого в PDF. Завершившийся экспорт с изменёнными настройками нужно проверить визуально; сам по себе он не доказывает, что исходный сбой устранён. Настройки растрирования при экспорте

В завершение повторите экспорт всего документа в нужном режиме страниц или разворотов и с окончательными настройками, а затем проверьте PDF. Сохраняйте записи о диапазонах, вызывавших сбой, пока экспорт не завершится успешно. В результате либо будет найдена подтверждённая страница для дальнейшего исследования, либо будет зафиксирован точный, воспроизводимый сбой при экспорте диапазона, который не позволяет установить конкретную страницу.

Источники