разделение и повторное объединение PDF-файлов с помощью Poppler приводит к увеличению размера файла? (несмотря на удаление метаданных)

Если у меня есть многостраничный PDF-файл, и я разделил его на отдельные страницы с помощью отличного пакета poppler (установленного на macOS используя brew install poppler) вот так:

pdfseparate foo.pdf bar-%04d.pdf

а затем снова присоединитесь к получившейся панели - файлы ####. pdf, например:

pdfunite bar-*.pdf baz.pdf

Полученный файл baz.pdf имеет то же содержание, но файл намного больше.

Сначала я предположил, что в результате будут дублироваться метаданные или что-то в этом роде. Но даже если я уберу все метаданные из всех файлов, то есть из ввода, а также из промежуточной панели - файлов ####. Pdf, а также из итогового файла вывода, используя exiftool и qpdf вот так:

# command line steps to strip metadata from (and re-linearize) example.pdf :
exiftool -all= -overwrite_original example.pdf ;
mv example.pdf temp.pdf ;
qpdf --linearize temp.pdf example.pdf

Тогда по-прежнему результирующий файл baz.pdf намного больше, чем исходный ввод.

Что может быть причиной этого? Что еще может быть в многостраничном PDF-файле, кроме его чистого содержимого? Предполагая, что pdfseparate и pdfunite Попплера не трогают сам фактический контент, и что мое удаление метаданных правильное.

Или возможно, что pdfseparate и pdfunite каким-то образом раскладывают и реконструируют содержимое PDF без потерь, но неоптимально? (Я недостаточно знаю внутреннюю структуру файлов PDF, но могу представить, что существует множество различных способов кодирования одного и того же содержимого)

Кстати, если я проверю любой из задействованных PDF-файлов с помощью exiftool somefile.pdf, он действительно не показывает никаких метаданных (и линеаризованный: да).


person RocketNuts    schedule 16.01.2019    source источник


Ответы (1)


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

person Mihai Iancu    schedule 17.01.2019
comment
Спасибо, да, конечно, в этом есть смысл. Вы бы случайно не знали, как это предотвратить? Обычно я выполняю описанный выше процесс для замены одной конкретной страницы, оставляя все остальные нетронутыми. Таким образом, все страницы, кроме одной, в итоговом файле будут такими же, как и в оригинале, с использованием тех же шрифтов или других ресурсов, как и раньше. - person RocketNuts; 17.01.2019
comment
К сожалению, нет. Это полностью зависит от инструментов, которые вы используете. Если они не поддерживают объединение ресурсов, вы ничего не можете сделать. Вероятно, вам нужно изучить другие инструменты и посмотреть, ведут ли они себя по-другому. - person Mihai Iancu; 17.01.2019