Укажите параметры рендеринга при преобразовании в PDF

Формат PDF - это формат с фиксированной страницей, который очень популярен среди пользователей и широко поддерживается различными приложениями, поскольку документ PDF выглядит одинаково на любом устройстве. По этой причине преобразование в PDF является важной функцией Aspose.Words.

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

Aspose.Words механизм верстки имитирует работу механизма верстки страниц Microsoft Word. Таким образом, Aspose.Words позволяет PDF выводимым документам выглядеть как можно ближе к тому, что вы можете видеть в Microsoft Word. Иногда необходимо указать дополнительные параметры, которые могут повлиять на результат сохранения документа в формате PDF. Эти параметры могут быть заданы с помощью класса PdfSaveOptions, содержащего свойства, которые определяют, как будут отображаться выходные данные PDF.

Ниже приведены некоторые примеры использования PdfSaveOptions.

Создание документа PDF с заполняемыми формами

Также можно экспортировать заполняемые формы из документа Microsoft Word в формат вывода PDF, который содержит заполняемые формы вместо обычного текста. Используйте свойство PreserveFormFields, чтобы сохранить документ как PDF с заполняемыми формами.

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

В приведенном ниже примере кода показано, как сохранить документ как PDF с заполняемыми формами с заданным сжатием и качеством Jpeg:

Экспорт структуры документа и пользовательских свойств

Свойство ExportDocumentStructure позволяет экспортировать структуру документа в выходные данные PDF.

PDF средства логической структуры предоставляют механизм для включения информации, касающейся структуры содержимого документа, в файл PDF. Aspose.Words сохраняет информацию о структуре документа Microsoft Word, такую как абзацы, списки, таблицы, сноски/концевые сноски и т.д.

В следующем примере показано, как сохранить документ в формате PDF, сохранив структуру документа:

Aspose.Words также позволяет экспортировать пользовательские свойства документа в PDF, что продемонстрировано в следующем примере:

Экспорт контуров из закладок и заголовков в выводе PDF

Если вы хотите экспортировать закладки в виде контуров в выходных данных PDF, вы можете использовать свойство DefaultBookmarksOutlineLevel. Это свойство определяет уровень по умолчанию в структуре документа, на котором отображаются закладки Microsoft Word. Если документ содержит закладки в верхнем/нижнем колонтитуле документа, вы можете задать свойству HeaderFooterBookmarksExportMode значение First или All, чтобы указать, как они экспортируются в выводе PDF. Закладки в верхних и нижних колонтитулах не экспортируются, если значение HeaderFooterBookmarksExportMode равно None.

В приведенном ниже примере кода показано, как экспортировать закладки из первого верхнего/нижнего колонтитула раздела:

Результат PDF этого примера показан ниже:

specify-rendering-options-aspose-words-cpp-1

Если для параметра HeaderFooterBookmarksExportMode задано значение First и в документе есть четные и нечетные верхние и нижние колонтитулы или другой верхний и нижний колонтитул первой страницы, закладки экспортируются для первых уникальных верхних и нижних колонтитулов в разделе.

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

В приведенном ниже примере кода показано, как экспортировать заголовки с тремя уровнями:

Результат PDF этого примера показан ниже:

specify-rendering-options-aspose-words-cpp-2

Уменьшение размера изображений для уменьшения размера документа

Aspose.Words предоставляет возможность уменьшить размер изображений, чтобы уменьшить размер выходных данных PDF, используя свойство DownsampleOptions. Уменьшение размера изображений включено по умолчанию в свойстве DownsampleImages.

Обратите внимание, что также можно задать конкретное разрешение в свойстве Resolution или пороговое значение разрешения в свойстве ResolutionThreshold. Во втором случае, если разрешение изображения меньше порогового значения, понижающая дискретизация применяться не будет.

В приведенном ниже примере кода показано, как изменить разрешение изображений в выходном документе PDF:

Разрешение рассчитывается в соответствии с реальным размером изображения на странице.

Встраивание шрифтов в формат Adobe PDF

Aspose.Words также позволяет управлять способом встраивания шрифтов в результирующие документы PDF. Шрифты необходимо встраивать в любой документ Adobe PDF, чтобы документ можно было корректно отобразить на любом компьютере (более подробную информацию о рендеринге шрифтов смотрите в разделе Использование шрифтов TrueType). По умолчанию Aspose.Words вставляет подмножество шрифтов, используемых в документе, в созданный PDF. В этом случае в PDF сохраняются только глифы (символы), используемые в документе.

Когда следует использовать полные шрифты, а когда - подмножества

Существует способ указать параметр для Aspose.Words для встраивания полных шрифтов. Более подробная информация, а также некоторые преимущества и недостатки каждой настройки описаны в таблице ниже.

Преимущества
Full
Subset

Встраивание полных шрифтов в PDF

Свойство EmbedFullFonts позволяет указать, как Aspose.Words вставляет шрифты в выходной документ PDF.

  • Чтобы вставить полные шрифты в выходной документ PDF, установите для параметра EmbedFullFonts значение true
  • Чтобы изменить шрифты при сохранении в PDF, установите для EmbedFullFonts значение false

В следующем примере показано, как полностью внедрить шрифты в выходной документ PDF:

В следующем примере показано, как установить значение Aspose.Words для подмножества шрифтов в выходных данных PDF:

Как управлять внедрением основных шрифтов и стандартных шрифтов Windows

Основные шрифты и стандартные шрифты Windows - это “стандартные” наборы шрифтов, которые обычно присутствуют на целевом компьютере или предоставляются средством чтения документов, поэтому их не нужно встраивать в выходные данные PDF. Отказавшись от внедрения этих шрифтов, вы можете уменьшить размер отображаемых PDF документов и при этом сохранить переносимость.

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

  • Поскольку эти варианты являются взаимоисключающими, вам следует выбирать только один за раз.
  • При сохранении с соблюдением требований PDF/A-1 все используемые шрифты должны быть встроены в документ PDF. При сохранении с соблюдением этого требования свойству UseCoreFonts должно быть присвоено значение false, а свойству FontEmbeddingMode - значение EmbedAll

Встраивание основных шрифтов

Возможность встраивания основных шрифтов может быть включена или отключена с помощью свойства UseCoreFonts. Если для него установлено значение true, следующие наиболее популярные шрифты “True Type” (базовые 14 шрифтов) не встраиваются в выходной документ PDF.:

Arial Times New Roman Courier New Symbol

Эти шрифты заменяются соответствующими шрифтами core Type 1, которые предоставляются читателем при открытии PDF.

В приведенном ниже примере показано, как установить Aspose.Words, чтобы избежать встраивания основных шрифтов и позволить читателю заменить их шрифтами PDF типа 1:

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

Встраивание системных шрифтов

Эту опцию можно включить или отключить с помощью свойства FontEmbeddingMode. Если для этого свойства задано значение EmbedNonstandard, шрифты “Arial” и “Times New Roman” true type не будут встроены в документ PDF. В этом случае клиентская программа просмотра использует шрифты, установленные в операционной системе клиента. Если для свойства FontEmbeddingMode задано значение EmbedNone, Aspose.Words не вставляйте никакие шрифты.

В приведенном ниже примере показано, как установить значение Aspose.Words, чтобы не вставлять шрифты Arial и Times New Roman в документ PDF.:

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