fix: place card rotated

This commit is contained in:
2025-05-13 13:13:38 +04:00
parent 329616bcd3
commit 816dcac16c
2 changed files with 17 additions and 1 deletions

View File

@@ -1,5 +1,7 @@
import os
from io import BytesIO
from pdfrw import PdfReader, PdfWriter, PageMerge
from reportlab.lib.styles import ParagraphStyle, getSampleStyleSheet
from reportlab.lib.units import mm
from reportlab.pdfbase import pdfmetrics
@@ -79,3 +81,16 @@ class BasePdfCardGenerator:
alignment=1,
**common_paragraph_style,
)
def _rotate_pdf(self, buffer: BytesIO, rotation: str = 90) -> BytesIO:
reader = PdfReader(buffer)
writer = PdfWriter()
for page in reader.pages:
rotated_page = PageMerge().add(page, rotate=rotation).render()
writer.addpage(rotated_page)
rotated_buffer = BytesIO()
writer.write(rotated_buffer)
rotated_buffer.seek(0)
return rotated_buffer

View File

@@ -80,4 +80,5 @@ class WarehousePlaceQRCodeGenerator(BasePdfCardGenerator):
doc.build(elements, on_first_page)
buffer.seek(0)
return buffer
rotated = self._rotate_pdf(buffer)
return rotated