Почему такая большая разница в размерах практически одинаковых документов
Иметь два файла 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, например, этого (я только что погуглил, никаких гарантий, что он будет работать должным образом).