Есть ли способ уменьшить размер объединенных PDF-файлов с помощью PyPDF2 до минимума или уменьшить размер после объединения?
Я развернул водяной знак в существующем файле PDF, используя метод, подробно описанный в ответе на этот вопрос: Как добавить страницы PDF с помощью PyPDF2
Однако во время этого процесса слияния размер pdf по крайней мере удваивается, а часто почти втрое увеличивается (например, от 10 МБ до 30 МБ) в зависимости от используемого водяного знака. Мне нужно, чтобы размер был намного ближе к исходному размеру PDF-файлов.
Есть ли способ достичь этого во время процесса слияния? или, если нет, есть ли способ, который я могу развернуть через PyPDF2 или любой другой пакет python, чтобы значительно уменьшить размер файла?
Я искал вокруг, но не могу найти разумного решения в данный момент (кроме возможного ручного уменьшения размера с помощью программного обеспечения Adobe). Это не подходящее решение, так как мне нужно, чтобы сокращение было автоматизировано.
Кроме того, из интереса, особенно учитывая тот факт, что водяной знак является частью размера исходного PDF, как получается, что размер файла более чем удваивается?
Я не детализировал какой-либо конкретный код здесь (кроме косвенного через связанный вопрос и ответ), так как он не кажется необходимым. Хотя, если требуется дополнительная информация, пожалуйста, дайте мне знать!
Спасибо!
1 ответ
Ключевая проблема заключается в том, что, если вы используете водяные знаки на n страницах с помощью mergePage, он, скорее всего, вводит n копий ресурсов страницы водяного знака в документ, а не повторно использует 1 копию водяного знака n раз. N копий шрифта или ресурса изображения становятся значительными накладными расходами. Я не вижу способа обойти это в PyPDF2. Моя компания, Datalogics, предлагает продукт PDFOptimizer, который можно автоматизировать для удаления избыточных ресурсов.