Почему такая большая разница в размерах практически одинаковых документов

Иметь два файла PDF, первый из которых создан с помощью libharu, а второй - с помощью PDF::API2. Если не упомянуть о координатах, то содержание то же самое. Но первый PDF больше, второй в четыре раза. Единственное различие, которое я обнаружил, это тип встраивания шрифтов, показанный на вкладке шрифтов в свойствах документа.

Во-первых

Verdana (Embedded Subset) 
  Type: TrueType 
  Encoding: Custom

В секунду

Verdana 
  Type: TrueType
  Encoding: Custom
  Actual Font: Verdana
  Actual font Type: TrueType

Как бороться с этим встроенным подмножеством?

2 ответа

Это старый вопрос, но у меня была похожая проблема.

Вы установили libharu для сжатия вашего pdf?

в C++, из документации

HPDF_SetCompressionMode (pdf, HPDF_COMP_ALL);

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

  • "Встроенное подмножество" означает, что часть метрики шрифта, например, ширина глифа, включена в файл.
  • Если шрифт не внедрен, предположительно он загружается читателем из системы, уменьшая размер файла.

Если PDF-файл уже небольшой (содержит только одну страницу, мало текста и не содержит изображений), встраивание шрифтов может существенно увеличить размер документа. Тем не менее, в абсолютном выражении, встроенный шрифт не должен занимать много места.

Еще один фактор, который вы должны проверить, это сжатие. PDF - это в основном простой текстовый поток, но обычно он поставляется в сжатом виде. Попробуйте открыть оба файла PDF в текстовом редакторе и посмотреть, читаемы ли они или нет. Бредовая (сжатая) форма естественно займет меньше места.

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

Другие вопросы по тегам