I've noticed a weird behavior trying to split some PDF files containing a table of contents with outlines on their first pages. The issue is that the output file containing the table of contents has the same file size of the input PDF although it has fewer pages since it has been split.
Therefore, trying to split a 9.6 MB PDF with 199 pages with the following code snippet I get two output files: one with 9.6 MB and 100 pages and another one with 3 MB and 99 pages.
Running a similar code with pikepdf I have no issues and I get one file with 6.7 MB and 100 pages and another one with 99 pages and 3 MB.
Environment
$ python -m platform
macOS-12.5.1-x86_64-i386-64bit
$ python -c "import PyPDF2;print(PyPDF2.__version__)"
2.10.4
Code
from PyPDF2 import PdfReader, PdfMerger, PageRange
reader = PdfReader("sample.pdf")
num_pages = len(reader.pages)
page_ranges = [PageRange(slice(n, n + 100)) for n in range(0, num_pages, 100)]
for n, page_range in enumerate(page_ranges, 1):
merger = PdfMerger()
merger.append(reader, pages=page_range)
merger.write(f"{'sample'} [{'part'} {n}].pdf")
PDF
Unfortunately, I can't share the PDF file.
I've noticed a weird behavior trying to split some PDF files containing a table of contents with outlines on their first pages. The issue is that the output file containing the table of contents has the same file size of the input PDF although it has fewer pages since it has been split.
Therefore, trying to split a 9.6 MB PDF with 199 pages with the following code snippet I get two output files: one with 9.6 MB and 100 pages and another one with 3 MB and 99 pages.
Running a similar code with pikepdf I have no issues and I get one file with 6.7 MB and 100 pages and another one with 99 pages and 3 MB.
Environment
$ python -m platform macOS-12.5.1-x86_64-i386-64bit $ python -c "import PyPDF2;print(PyPDF2.__version__)" 2.10.4Code
PDF
Unfortunately, I can't share the PDF file.