mirror of
https://github.com/bringout/oca-ocb-core.git
synced 2026-04-19 19:32:05 +02:00
Fix PyPDF2 3.0+ compatibility issues
Add compatibility wrapper classes for PdfFileWriter/PdfFileReader
to support both PyPDF2 2.x and 3.x versions.
Changes:
- Add PdfWriter/PdfReader compatibility wrappers in odoo/tools/pdf.py
- Add compatibility classes in odoo/addons/base/models/ir_actions_report.py
- Create comprehensive documentation in doc/PATCH_PDFWRITER.md
Resolves PyPDF2.errors.DeprecationError: PdfFileWriter is deprecated
and was removed in PyPDF2 3.0.0.
🤖 assisted by claude
This commit is contained in:
parent
2483097b1b
commit
e8119c9226
3 changed files with 182 additions and 7 deletions
|
|
@ -24,7 +24,33 @@ from lxml import etree
|
|||
from contextlib import closing
|
||||
from reportlab.graphics.barcode import createBarcodeDrawing
|
||||
from reportlab.pdfbase.pdfmetrics import getFont, TypeFace
|
||||
from PyPDF2 import PdfFileWriter, PdfFileReader
|
||||
try:
|
||||
from PyPDF2 import PdfWriter, PdfReader
|
||||
|
||||
# Create compatibility classes for old PyPDF2 API
|
||||
class PdfFileWriter(PdfWriter):
|
||||
def addPage(self, page):
|
||||
return self.add_page(page)
|
||||
|
||||
def addMetadata(self, metadata):
|
||||
return self.add_metadata(metadata)
|
||||
|
||||
def appendPagesFromReader(self, reader, after_page_append=None):
|
||||
return self.append_pages_from_reader(reader, after_page_append)
|
||||
|
||||
class PdfFileReader(PdfReader):
|
||||
def getNumPages(self):
|
||||
return len(self.pages)
|
||||
|
||||
def getPage(self, page_num):
|
||||
return self.pages[page_num]
|
||||
|
||||
@property
|
||||
def numPages(self):
|
||||
return len(self.pages)
|
||||
|
||||
except ImportError:
|
||||
from PyPDF2 import PdfFileWriter, PdfFileReader
|
||||
from collections import OrderedDict
|
||||
from collections.abc import Iterable
|
||||
from PIL import Image, ImageFile
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue