Update pypdf requirement from ==6.5.* to ==6.11.* (#6176)

* Update pypdf requirement from ==6.5.* to ==6.11.*

Updates the requirements on [pypdf](https://github.com/py-pdf/pypdf) to permit the latest version.
- [Release notes](https://github.com/py-pdf/pypdf/releases)
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/py-pdf/pypdf/compare/6.5.0...6.11.0)

---
updated-dependencies:
- dependency-name: pypdf
  dependency-version: 6.11.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* Try to adjust code

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Raphael Michel <michel@rami.io>
This commit is contained in:
dependabot[bot]
2026-09-14 14:09:28 +02:00
committed by GitHub
co-authored by Raphael Michel
parent 8b10534c74
commit efdc83f72a
3 changed files with 11 additions and 31 deletions
+1 -1
View File
@@ -84,7 +84,7 @@ dependencies = [
"pycountry", "pycountry",
"pycparser==3.0", "pycparser==3.0",
"pycryptodome==3.23.*", "pycryptodome==3.23.*",
"pypdf==6.5.*", "pypdf==6.11.*",
"python-bidi==0.6.*", # Support for Arabic in reportlab "python-bidi==0.6.*", # Support for Arabic in reportlab
"python-dateutil==2.9.*", "python-dateutil==2.9.*",
"pytz", "pytz",
+9 -21
View File
@@ -1232,9 +1232,7 @@ class Renderer:
for i, page in enumerate(fg_pdf.pages): for i, page in enumerate(fg_pdf.pages):
bg_page = self.bg_pdf.pages[i] bg_page = self.bg_pdf.pages[i]
_correct_page_media_box(bg_page) _merge_with_correct_page_media_box(output, page, bg_page)
page.merge_page(bg_page, over=False)
output.add_page(page)
# pdf_header is a string like "%pdf-X.X" # pdf_header is a string like "%pdf-X.X"
if float(self.bg_pdf.pdf_header[5:]) > float(fg_pdf.pdf_header[5:]): if float(self.bg_pdf.pdf_header[5:]) > float(fg_pdf.pdf_header[5:]):
@@ -1301,8 +1299,7 @@ def merge_background(fg_pdf: PdfWriter, bg_pdf: PdfWriter, out_file, compress):
else: else:
for i, page in enumerate(fg_pdf.pages): for i, page in enumerate(fg_pdf.pages):
bg_page = bg_pdf.pages[i] bg_page = bg_pdf.pages[i]
_correct_page_media_box(bg_page) _merge_with_correct_page_media_box(fg_pdf, page, bg_page)
page.merge_page(bg_page, over=False)
# pdf_header is a string like "%pdf-X.X" # pdf_header is a string like "%pdf-X.X"
if float(bg_pdf.pdf_header[5:]) > float(fg_pdf.pdf_header[5:]): if float(bg_pdf.pdf_header[5:]) > float(fg_pdf.pdf_header[5:]):
@@ -1311,27 +1308,18 @@ def merge_background(fg_pdf: PdfWriter, bg_pdf: PdfWriter, out_file, compress):
fg_pdf.write(out_file) fg_pdf.write(out_file)
def _correct_page_media_box(page: pypdf.PageObject): def _merge_with_correct_page_media_box(output: pypdf.PdfWriter, fg_page: pypdf.PageObject, bg_page: pypdf.PageObject):
if page.rotation != 0: if bg_page.rotation != 0:
page.transfer_rotation_to_content() bg_page.transfer_rotation_to_content()
media_box = page.mediabox media_box = bg_page.mediabox
trsf = pypdf.Transformation() trsf = pypdf.Transformation()
if media_box.bottom != 0: if media_box.bottom != 0:
trsf = trsf.translate(0, -media_box.bottom) trsf = trsf.translate(0, -media_box.bottom)
if media_box.left != 0: if media_box.left != 0:
trsf = trsf.translate(-media_box.left, 0) trsf = trsf.translate(-media_box.left, 0)
page.add_transformation(trsf, False)
for b in ["/MediaBox", "/CropBox", "/BleedBox", "/TrimBox", "/ArtBox"]: fg_page = output.add_page(fg_page)
if b in page: fg_page.merge_transformed_page(bg_page, trsf, over=False, expand=False)
rr = pypdf.generic.RectangleObject(page[b])
pt1 = trsf.apply_on(rr.lower_left)
pt2 = trsf.apply_on(rr.upper_right)
page[pypdf.generic.NameObject(b)] = pypdf.generic.RectangleObject((
min(pt1[0], pt2[0]),
min(pt1[1], pt2[1]),
max(pt1[0], pt2[0]),
max(pt1[1], pt2[1]),
))
@deconstructible @deconstructible
+1 -9
View File
@@ -55,7 +55,6 @@ from django.db.models.functions import Cast, Coalesce
from django.utils.timezone import make_aware from django.utils.timezone import make_aware
from django.utils.translation import gettext as _, gettext_lazy, pgettext_lazy from django.utils.translation import gettext as _, gettext_lazy, pgettext_lazy
from pypdf import PageObject, PdfReader, PdfWriter, Transformation from pypdf import PageObject, PdfReader, PdfWriter, Transformation
from pypdf.generic import RectangleObject
from reportlab.lib import pagesizes from reportlab.lib import pagesizes
from reportlab.lib.units import inch, mm from reportlab.lib.units import inch, mm
from reportlab.pdfgen import canvas from reportlab.pdfgen import canvas
@@ -238,15 +237,8 @@ def _render_nup_page(nup_pdf: PdfWriter, input_pages: PageObject, opt: dict) ->
di = i % badges_per_page di = i % badges_per_page
tx = opt['margins'][3] + (di % opt['cols']) * opt['offsets'][0] tx = opt['margins'][3] + (di % opt['cols']) * opt['offsets'][0]
ty = opt['margins'][2] + (opt['rows'] - 1 - (di // opt['cols'])) * opt['offsets'][1] ty = opt['margins'][2] + (opt['rows'] - 1 - (di // opt['cols'])) * opt['offsets'][1]
page.add_transformation(Transformation().translate(tx, ty))
page.mediabox = RectangleObject((
Decimal('%.5f' % (page.mediabox.left.as_numeric() + tx)),
Decimal('%.5f' % (page.mediabox.bottom.as_numeric() + ty)),
Decimal('%.5f' % (page.mediabox.right.as_numeric() + tx)),
Decimal('%.5f' % (page.mediabox.top.as_numeric() + ty))
))
page.trimbox = page.cropbox = page.mediabox page.trimbox = page.cropbox = page.mediabox
nup_page.merge_page(page) nup_page.merge_transformed_page(page, Transformation().translate(tx, ty))
return nup_page return nup_page