У меня есть файл PDF около 7000 страниц и 479 МБ. Я создал скрипт python, используя PyPDF4 для извлечения только определенных c страниц, если страницы содержат определенные c слова. Сценарий работает, но новый PDF-файл, хотя он содержит всего 650 страниц из исходного 7000, теперь имеет больше МБ, чем исходный файл (точнее 498 МБ).
Есть ли способ уменьшить размер файла нового PDF?
Сценарий, который я использовал:
from PyPDF4 import PdfFileWriter, PdfFileReader
import os
import re
output = PdfFileWriter()
input = PdfFileReader(open('Binder.pdf', 'rb')) # open input
for i in range(0, input.getNumPages()):
content = ""
content += input.getPage(i).extractText() + "\n"
#Format 1
RS = re.search('FIGURE', content)
RS1 = #... Only one search given as example. I have more, but are irrelevant for the question.
#....
# Format 2
RS20 = re.search('FIG.', content)
RS21 = #... Only one search given as example. I have more, but are irrelevant for the question.
#....
if (all(v is not None for v in [RS, RS1, RS2, RS3, RS4, RS5, RS6, RS7, RS8, RS9]) or all(v is not None for v in [RS20, RS21, RS22, RS23, RS24, RS25, RS26, RS27, RS28, RS29, RS30, RS30])):
p = input.getPage(i)
output.addPage(p)
#Save pages to new PDF file
with open('ExtractedPages.pdf', 'wb') as f:
output.write(f)