Работа с 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 в словаре элементов структуры...
NOTE Альтернативные описания содержат текстовые описания, которые помогают правильно интерпретировать непрозрачный нетекстовый контент.
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 GUI. Aspose.Words можно было бы обновить такие поля и сгенерировать ссылки самостоятельно.
Следуйте примеру кода, чтобы обновить поля TOC
, используя объектную модель документа Aspose.Words (DOM).:
Document doc = new Document(fileName);
ArrayList<FieldHyperlink> tocHyperLinks = new ArrayList<>();
for (Field field : doc.getRange().getFields()) {
if (field.getType() == FieldType.FIELD_HYPERLINK) {
FieldHyperlink hyperlink = (FieldHyperlink) field;
if (hyperlink.getFieldCode().startsWith("#_Toc")) {
tocHyperLinks.add(hyperlink);
}
}
}
for (FieldHyperlink link : tocHyperLinks)
link.setScreenTip(link.getDisplayResult());
PdfSaveOptions opt = new PdfSaveOptions();
opt.setCompliance(PdfCompliance.PDF_UA_1);
opt.setDisplayDocTitle(true);
opt.setExportDocumentStructure(true);
opt.getOutlineOptions().setHeadingsOutlineLevels(3);
opt.getOutlineOptions().setCreateMissingOutlineLevels(true);
String outFile = fileName.substring(0,fileName.lastIndexOf('.')) + "_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 UI Symbol” - это шрифт Юникода Windows, который можно использовать в качестве альтернативы символьным шрифтам.
В этом блоке вы можете увидеть примеры: что должен сделать пользователь, чтобы решить проблему с символьными шрифтами (разверните, чтобы увидеть подробности).
Замените символьный шрифт на юникодный в исходном документе Word:

Или добавьте запись ActualText к проблемным символам в выходном документе PDF:
