Как оптимизировать размер файла отчета в формате PDF

16.10.2017

В этой статье мы поговорим о PDF экспорте в FastReport.NET. А именно о размере файла, полученного в результате экспорта. На размер итогового файла влияет достаточно много факторов: качество изображений, встроенные шрифты, шрифты в «кривых», фоновое изображение и др.

Давайте взглянем на окно настроек экспорта:

 

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

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

Опция «Фон» - включает в PDF документ фон отчета. Также увеличивает размер документа.

Опция «Текст в кривых» включает режим рисования символов с помощью векторных примитивов (TrueTypeFonts). Это гарантирует сохранение вида и пропорций символов при масштабировании. Однако, эта опция существенно влияет на размер PDF докумета. Использование этой опции оправдано при печати документа на больших форматах, например, в плоттерах.

Теперь рассмотрим опции, относящиеся к графике.

Цветовая схема: RGB или CMYK. Два типа цветообразования. Первая применяется в телевидении, вторая – в полиграфии. Использование схемы CMYK увеличивает размер файла. Если для вас важно сохранить правильные цвета при печати, используйте эту опцию

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

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

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

Кроме того, это может привести к плохой читаемости штрих кодов сканерами.

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

Это решает проблемы читаемости штрих кодов и внешнего вида диаграмм и карт.

Изображения сформированы в большем разрешении, чем обычно, поэтому они имеют запас для визуализации при масштабировании.

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

При размещении изображений в оригинальном разрешении никакой отрисовки в масштабе не осуществляется. В таком случае все зависит от изначальных изображений.

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

А теперь я приведу результаты измерений размеров файлов с различными стандартами PDF и опциями. Я взял демонстрационный отчет Simple list из поставки FastReport .NET. Каждое измерение проводилось с одной включенной опцией, никаких сочетаний. Итак, размеры PDF файлов в килобайтах:

Стандарт

Без опций

Внедренные шрифты

Фон

Текст в кривых

RGB

CMYK

Оригинальное разрешение

Для печати

Jpeg сжатие 95

Фон, цвет и текстура

PDF 1.5

424

550

425

1652

424

438

627

4332

112

437

PDF/A

-

558

558

-

558

944

760

4465

245

570

PDF-X

-

551

551

1652

551

952

756

4450

238

564

Как говорилось выше PDF/A и PDF-X имеют внедренные шрифты по умолчанию, и поэтому в первой колонке их нет. Если сравнить все три стандарта с внедренными шрифтами, то наибольший размер у PDF/A.

Как вы обратили внимание, включенная опция Фон никак не повлияла на размер. Потому, что отчет Simple List не имеет фона. Я провел отдельные измерения, изменив фон в отчете, и получил отличные цифры (последний столбец).

Следующая опция «Текст в кривых» не доступна для PDF/A, это обусловлено стандартом. Для PDF1.5 и PDF-X размер файла идентичен и превышает показатель из предыдущих столбцов в три раза. Тут стоит подумать так ли нужна ли вам эта опция.

Цветовое пространство RGB выбрано по умолчанию, поэтому размер совпадает с размером из первой (второй) колонки. А для CMYK размер файла больше, особенно у стандарта PDF/A и PDF-X. Это связано с применением цветовых профилей ICC.

Теперь «Оригинальное разрешение». PDF документ содержит оригинальные рисунки из отчета. Из трех показателей в этой колонке самый маленький у PDF 1.5. Но это только потому, что два других имеют внедренные шрифты. Так что значения у всех примерно равны.

Это касается и остальных параметров. Файл PDF 1.5 меньше ровно на величину внедренных шрифтов.

Обратите внимание на колонку «Для печати». Размер файла больше начального (без опций) в 8 раз! Мы уже знаем, что это связано с большим разрешением изображений в документе.

Выше я уже писал, что Jpeg сжатие может существенно уменьшить размер файла. И это действительно так. Для PDF 1.5 это 112 килобайт против начальных 424. Почти в 4 раза меньше! А если бы наш отчет содержал только картинки, этот показатель был бы еще больше.

Из рассмотренной выше таблицы можно становится понятно какие из опций стоит применять с осторожностью. К примеру опции «Для печати» и «Текст в кривых» без особой необходимости включать не стоит. Использование внедренных шрифтов не сильно влияет на размер документа, но полезно для сохранения задуманного вида документа. В отчетах, не требующих качественной графики, уместно применить Jpeg сжатие. А цветовую схему CMYK уместно использовать, если отчет предназначен для печати и содержит фотографические рисунки.

 

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.