Fix PyPDF2 3.0+ compatibility issues in report_py3o

Add compatibility wrapper classes for PdfFileWriter/PdfFileReader
to support both PyPDF2 2.x and 3.x versions.

Changes:
- Add PyPDF2 compatibility classes in report_py3o/models/py3o_report.py
- Create comprehensive documentation in doc/PATCH_PDFWRITER.md
- Support for appendPagesFromReader method for PDF merging

Resolves PyPDF2.errors.DeprecationError: appendPagesFromReader is deprecated
and was removed in PyPDF2 3.0.0. Use append_pages_from_reader instead.

🤖 assisted by claude
This commit is contained in:
Ernad Husremovic 2025-09-02 19:09:50 +02:00
parent dd24c2f440
commit 7ed9174780
2 changed files with 135 additions and 2 deletions

View file

@ -37,9 +37,21 @@ try:
except ImportError:
logger.debug("Cannot import py3o.formats")
try:
from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2 import PdfWriter, PdfReader
# Create compatibility classes for PyPDF2 3.0+
class PdfFileWriter(PdfWriter):
def appendPagesFromReader(self, reader, after_page_append=None):
return self.append_pages_from_reader(reader, after_page_append)
class PdfFileReader(PdfReader):
pass
except ImportError:
logger.debug("Cannot import PyPDF2")
try:
from PyPDF2 import PdfFileReader, PdfFileWriter
except ImportError:
logger.debug("Cannot import PyPDF2")
_extender_functions = {}