Support PyPDF2 version 3.0.0

PdfFileReader and PdfFileWriter raise a deprecation exception at run time but
the new names have been introduced only in version 2.0.0, 6 months ago.

Closes #11961
This commit is contained in:
Cédric Krier
2022-12-23 12:52:39 +01:00
parent 4e2adb5f0f
commit 5b3f5cc43c
3 changed files with 20 additions and 10 deletions
+7 -4
View File
@@ -2,7 +2,10 @@
# this repository contains the full copyright notices and license terms.
from io import BytesIO
from PyPDF2 import PdfFileReader, PdfFileWriter
try:
from PyPDF2 import PdfReader, PdfWriter
except ImportError:
from PyPDF2 import PdfFileReader as PdfReader, PdfFileWriter as PdfWriter
from trytond.pool import Pool, PoolMeta
from trytond.report import Report
@@ -45,9 +48,9 @@ class Invoice(metaclass=PoolMeta):
@classmethod
def merge(cls, invoice, watermark):
output = PdfFileWriter()
invoice = PdfFileReader(BytesIO(invoice))
watermark = PdfFileReader(BytesIO(watermark)).getPage(0)
output = PdfWriter()
invoice = PdfReader(BytesIO(invoice))
watermark = PdfReader(BytesIO(watermark)).getPage(0)
for i in range(invoice.getNumPages()):
page = invoice.getPage(i)
page.mergePage(watermark)
+7 -3
View File
@@ -6,9 +6,13 @@ from io import BytesIO
from itertools import zip_longest
from lxml import etree
from PyPDF2 import PdfFileReader, PdfFileWriter
from zeep.exceptions import Fault
try:
from PyPDF2 import PdfReader, PdfWriter
except ImportError:
from PyPDF2 import PdfFileReader as PdfReader, PdfFileWriter as PdfWriter
from trytond.i18n import gettext
from trytond.model import fields
from trytond.model.exceptions import AccessError
@@ -170,9 +174,9 @@ class CreateDPDShipping(Wizard):
labels = []
labels_pdf = BytesIO(shipment_response.parcellabelsPDF)
reader = PdfFileReader(labels_pdf)
reader = PdfReader(labels_pdf)
for page_num in range(reader.getNumPages()):
new_pdf = PdfFileWriter()
new_pdf = PdfWriter()
new_label = BytesIO()
new_pdf.addPage(reader.getPage(page_num))
new_pdf.write(new_label)
@@ -3,7 +3,10 @@
from io import BytesIO
from itertools import zip_longest
from PyPDF2 import PdfFileReader, PdfFileWriter
try:
from PyPDF2 import PdfReader, PdfWriter
except ImportError:
from PyPDF2 import PdfFileReader as PdfReader, PdfFileWriter as PdfWriter
from trytond.i18n import gettext
from trytond.model import fields
@@ -168,9 +171,9 @@ class ShipmentCreateShippingMyGLS(Wizard):
message=message))
labels = []
reader = PdfFileReader(BytesIO(response.Labels))
reader = PdfReader(BytesIO(response.Labels))
for i in range(reader.getNumPages()):
pdf = PdfFileWriter()
pdf = PdfWriter()
label = BytesIO()
pdf.addPage(reader.getPage(i))
pdf.write(label)