fix: place card rotated
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user