Работа с PDF/A или PDF/UA
Формат PDF/A и PDF/UA предъявляет ряд требований к содержимому документа, которые не могут быть выполнены при автоматическом преобразовании документа в формате Word в формат PDF. Эти требования должны быть проверены и исправлены либо в документе Word перед преобразованием, либо в документе PDF после преобразования, чтобы создать документ, полностью соответствующий требованиям PDF/A и PDF/UA.
Основные требования предъявляются к структуре или шрифтам документов PDF/A и PDF/UA, которые мы рассмотрим в следующих разделах.
Требования к структуре документа
Текущие требования предъявляются к форматам PDF/A-1a, PDF/A-2a, PDF/A-4, и PDF/UA-1.
Существуют некоторые нюансы работы Aspose.Words при конвертации в различные стандарты формата PDF. Их необходимо учитывать, если вы хотите получить ожидаемый результат.
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Авторам нецелесообразно генерировать структурную или семантическую информацию с использованием автоматизированных процессов без соответствующей проверки.
ISO 19005-2, 6.7.1
В подразделах ниже описаны нюансы работы Aspose.Words при преобразовании в различные стандарты формата PDF и варианты их решения.
Тип конструкции
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-2a | |
PDF/UA-1 |
Документ PDF представляет собой последовательность блоков, таких как заголовки, абзацы, таблицы и другие. Эти блоки образуют структуру документа – сильную или слабую.
Для PDF/A допустимы как строгие, так и слабые структуры. Документы Microsoft Word имеют слабую структуру по дизайну, и Aspose.Words создает PDF со слабой структурой соответственно, а также генерирует заголовки в соответствии с уровнями структуры абзацев в исходном документе.
Для документа PDF/UA-1 со слабой структурой дополнительно требуется, чтобы номера заголовков шли по порядку без пробелов.
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Структура блочного уровня может соответствовать одной из двух основных парадигм:
ISO-32000-1, 14.8.4.3.5
Для документов PDF/UA-1 спецификация содержит дополнение, связанное с уровнями заголовков (разверните, чтобы увидеть подробности).:
Если семантика документа требует убывающей последовательности заголовков, то такая последовательность должна быть строго нумерованной и не должна пропускать промежуточный уровень заголовка. H1, H2, H3 допустима, а H1, H3 - нет.
ISO-14289-1, 7.4.2
Чтобы обеспечить корректный вывод, пользователи должны убедиться, что содержимое исходного документа правильно организовано, а уровни структуры абзацев указаны правильно. В противном случае пользователь должен проверить и исправить структуру выходного документа PDF.
В этом блоке вы можете увидеть примеры: как задать уровни структуры в Microsoft Word или проверить и исправить структуру выходного документа PDF (разверните, чтобы увидеть подробности).
В Microsoft Word для настройки уровня структуры можно использовать стандартные стили "Заголовок X":
Кроме того, в окне "Абзац" можно проверить или изменить уровень контура:
В Acrobat структуру документа можно проверить или изменить на панели "Теги":
Помечение содержимого как артефакта
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-2a | |
PDF/UA-1 |
На данный момент Aspose.Words помечает верхние и нижние колонтитулы страниц, разделители заметок, повторяющиеся ячейки заголовка таблицы и декоративные изображения как артефакты. Обратите внимание, что в будущем этот список может быть обновлен.
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Графические объекты в документе можно разделить на два класса:
ISO-32000-1, 14.8.2.2.1
Если документ содержит какой-либо другой контент, который должен быть помечен как артефакт, или если какой-либо из артефактированных материалов является реальным, клиенты должны исправить это в выходных данных PDF.
В этом блоке вы можете увидеть примеры: как пометить фигуры как декоративные в Microsoft Word или как пометить фигуру как артефакт в выходном документе PDF (разверните, чтобы увидеть подробности).
Например, фигуры могут быть помечены как декоративные в Microsoft Word, поэтому они будут экспортированы в PDF как артефакт:
Вы можете пометить фигуру как артефакт в выходных данных PDF:
Кроме того, вы можете переключить текст в заголовке с артефакта на реальное содержимое в выходных данных PDF:
Спецификация естественного языка
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-2a | |
PDF/UA-1 |
Язык текста указывается в документах Microsoft Word. Aspose.Words экспортирует указанный язык в выходные данные PDF с атрибутом Lang, прикрепленным к помеченной последовательности содержимого или тегу Span - он управляется свойством ExportLanguageToSpanTag. Как правило, при вводе текста пользователем через Microsoft Word языковых проблем не возникает. Но существует вероятность того, что язык может быть указан неточно, если текст генерируется автоматически.
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Естественный язык по умолчанию для всего текста в файле должен быть указан в записи Lang в словаре каталога документа.
Все текстовое содержимое в файле, которое отличается от языка, используемого по умолчанию, должно быть указано с помощью свойства `Lang`, связанного с последовательностью помеченного содержимого, или с помощью языковой записи в словаре элементов структуры...
ISO-19005-2, 6.7.4
Дополнительно для PDF/UA-1 спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Должен быть объявлен естественный язык… Должны быть объявлены изменения в естественном языке.
ISO-14289-1, 7.2
В этом блоке вы можете увидеть примеры: как убедиться, что язык указан правильно (разверните, чтобы увидеть подробности).
Пользователи должны убедиться, что язык указан правильно в любом исходном документе Word:
Или выходной документ PDF:
Подпись к рисунку
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-2a | |
PDF/UA-1 |
Документы Microsoft Word позволяют пользователям добавлять подписи к рисункам.
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Подпись, сопровождающая рисунок, должна быть помечена тегом Caption.
ISO-14289-1, 7.3
В настоящее время Aspose.Words не может экспортировать подписи с тегом Caption, поэтому они должны быть помечены в выходных данных PDF.
В этом блоке вы можете увидеть примеры: как вставить заголовок (разверните, чтобы увидеть подробности).
В Microsoft Word заголовок можно вставить через контекстное меню:
В Acrobat заголовок можно добавить или изменить с помощью диалогового окна свойств `Object`:
Альтернативные описания
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-2a | |
PDF/UA-1 |
Документы Microsoft Word позволяют пользователям добавлять альтернативный текст к изображениям, фигурам и таблицам. Aspose.Words экспортирует такой альтернативный текст в выходные данные PDF.
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Все элементы структуры, содержимое которых не имеет естественного заданного текстового аналога, например изображения, формулы и т.д., должны содержать альтернативное текстовое описание, используя запись Alt в словаре элементов структуры...
ПРИМЕЧАНИЕ. Альтернативные описания содержат текстовые описания, которые помогают правильно интерпретировать непрозрачный нетекстовый контент.
ISO-19005-2, 6.7.5
В этом блоке вы можете увидеть примеры: как обеспечить, чтобы все элементы имели альтернативный текст (разверните, чтобы увидеть подробности).
Пользователи должны убедиться, что все элементы имеют альтернативный текст в любом исходном документе Word:
Или выходной документ PDF:
Альтернативные описания для гиперссылок
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-2a | |
PDF/UA-1 |
В дополнение к предыдущему пункту, документы Microsoft Word также позволяют пользователям добавлять альтернативный текст к гиперссылкам. Aspose.Words экспортирует такой альтернативный текст в выходные данные PDF.
К сожалению, не каждое приложение позволяет настроить альтернативное описание. Например, в Adobe Acrobat в настоящее время не предусмотрена возможность настройки такого описания для гиперссылок. Но в Microsoft Word это можно сделать следующим образом:
Иногда возникает проблема, связанная с невозможностью задать альтернативный текст для автоматически генерируемых гиперссылок в оглавлении (TOC) через графический интерфейс Microsoft Word. Aspose.Words можно обновить такие поля и сгенерировать ссылки самостоятельно.
Следуйте примеру кода, чтобы обновить поля TOC
, используя объектную модель документа Aspose.Words (DOM).:
auto doc = MakeObject<Document>(filename);
auto tocHyperLinks = doc->get_Range()->get_Fields()->
LINQ_Where([](SharedPtr<Field> f) {return f->get_Type() == FieldType::FieldHyperlink; })->
LINQ_Where([](SharedPtr<FieldHyperlink> f) { return f->get_DisplayResult().StartsWith(u"#_Toc"); });
for (const auto& link : tocHyperLinks)
link->set_ScreenTip(link->get_DisplayResult());
auto opt = MakeObject<PdfSaveOptions>();
opt->set_Compliance(PdfCompliance::PdfUa1);
opt->set_DisplayDocTitle(true);
opt->set_ExportDocumentStructure(true);
opt->get_OutlineOptions()->set_HeadingsOutlineLevels(3);
opt->get_OutlineOptions()->set_CreateMissingOutlineLevels(true);
auto outFile = filename.substr(0, filename.find_last_of('.')) + "_aw.pdf";
doc->Save(outFile, opt);
Заголовки таблиц
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-2a | |
PDF/UA-1 |
Таблицы в документах PDF/UA-1 должны иметь заголовки – столбец, строку или оба вместе. PDF/A требуется только стандартная табличная разметка, которая не имеет дополнительных ограничений. Обратите внимание, что Aspose.Words автоматически генерирует стандартную табличную разметку.
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Таблицы должны содержать заголовки… Таблицы могут содержать заголовки столбцов, строк или и то, и другое.
ISO-14289-1, 7.5
В этом блоке вы можете увидеть примеры: как задать заголовок таблицы (разверните, чтобы увидеть подробности).
Заголовок таблицы может быть задан либо в исходном документе Microsoft Word:
Или вывод PDF:
Заменяющий текст
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-2a | |
PDF/UA-1 |
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Спецификация сообщает нам следующее:
Все элементы текстовой структуры, представленные нестандартным образом, например, пользовательские символы или встроенная графика, должны содержать заменяющий текст, используя запись `ActualText` в словаре элементов структуры...
ISO-19005-2, 6.7.7
Документ Microsoft Word не позволяет пользователям устанавливать текст для замены. Поэтому это необходимо проверить и исправить в выходных данных PDF:
Сокращения и акронимические дополнения
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-2a | |
PDF/UA-1 |
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Все экземпляры аббревиатур и сокращений в текстовом контенте должны быть размещены в последовательности, обозначенной как content, с помощью тега Span, свойство E которого обеспечивает текстовое расширение аббревиатуры или акронима...
ISO-19005-2, 6.7.8
Документ Microsoft Word не позволяет пользователям указывать сокращения и аббревиатурные расширения. Поэтому это необходимо проверить и исправить в выходных данных PDF:
Название документа
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-2a | |
PDF/A-4 | |
PDF/UA-1 |
Документ в PDF/UA-1 должен иметь заголовок. |
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Спецификация сообщает нам следующее:
Поток метаданных в словаре каталога документа должен содержать запись dc:title, где dc является рекомендуемым префиксом для схемы метаданных Dublin Core…
ISO-14289-1, 7.1
В этом блоке вы можете увидеть примеры: как задать заголовок документа (разверните, чтобы увидеть подробности).
Заголовок документа может быть задан либо как исходный документ Microsoft Word:
Или вывод PDF:
Требования к шрифту
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-1b | |
PDF/A-2a | |
PDF/A-2b | |
PDF/A-4 | |
PDF/UA-1 |
Также существует ряд нюансов работы со шрифтами при конвертации в форматы PDF/A-1, PDF/A-2, PDF/A-4 или PDF/UA-1 с использованием Aspose.Words. Их необходимо учитывать, если вы хотите избежать возможных проблем с выходным документом.
В разделах ниже описаны такие нюансы и варианты их решения.
Юридические требования к шрифтам
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-1b | |
PDF/A-2a | |
PDF/A-2b | |
PDF/A-4 | |
PDF/UA-1 |
Aspose.Words не проверяет соответствие используемых шрифтов юридическим ограничениям – это зависит от пользователей. Другими словами, пользователь не должен предоставлять неподходящие шрифты для преобразования PDF с помощью Aspose.Words.
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Должны использоваться только те шрифтовые программы, которые легально встраиваются в файл для неограниченного универсального отображения.
ISO-19005-2, 6.2.11.4.1; ISO-14289-1, 7.21.4.1 ( точно такие же цитаты в двух спецификациях)
.notdef Glyph
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-1b | |
PDF/A-2a | |
PDF/A-2b | |
PDF/A-4 | |
PDF/UA-1 |
Использование символа .notdef
запрещено. Символ .notdef
появится, если документ содержит символы, которых нет в выбранном шрифте и которые также не могут быть исправлены с помощью резервного механизма изменения шрифта.
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Соответствующий документ не должен содержать ссылки на глиф .notdef ни в одном из операторов отображения текста, независимо от режима отображения текста, в любом потоке содержимого.
ISO-19005-2, 6.2.11.8; ISO-14289-1, 7.21.8 ( точно такие же цитаты в двух спецификациях)
В этом блоке вы можете увидеть примеры того, как удалить или заменить эти символы (разверните, чтобы увидеть подробности).
Пользователи должны удалить или заменить эти символы в любом исходном документе Word:
Или вывести документ PDF с помощью инструмента "Редактировать PDF":
Зона частного пользования (PUA)
PDF уровни соответствия стандартам в пределах Aspose.Words | Наличие требования |
---|---|
PDF/A-1a | |
PDF/A-1b | |
PDF/A-2a | |
PDF/A-2b | |
PDF/A-4 | |
PDF/UA-1 |
Символы области частного использования (PUA) отображаются в основном символьными шрифтами Windows, такими как “Symbol”, “Wingdings”, “Webdings” и другими. Форматы Microsoft Word не предоставляют возможности сохранять фактический текст для символов.
Спецификация сообщает нам следующее (разверните, чтобы увидеть подробности):
Только для соответствия уровню A, для любого символа... который сопоставляется с кодом или кодами в области частного использования Unicode (PUA), запись ActualText ... для этого символа или последовательности символов, частью которых является такой символ, должна присутствовать запись.
ISO-19005-2, 6.2.11.7.3
“Символ пользовательского интерфейса Segoe” - это шрифт Windows Unicode, который можно использовать в качестве альтернативы символьным шрифтам.
В этом блоке вы можете увидеть примеры: что должен сделать пользователь, чтобы решить проблему с символьными шрифтами (разверните, чтобы увидеть подробности).
Замените символьный шрифт на юникодный в исходном документе Word:
Или добавьте запись ActualText к проблемным символам в выходном документе PDF: