Я пытаюсь прочитать изображения из каталога и создать PDF-файл из всех изображений в каталоге с именем изображения плюс изображение. Я хочу повернуть изображение, если оно находится в портретном режиме (большинство из них в альбомной ориентации, поэтому по умолчанию). Это работает фантастически для исправления поворота, но оно помещает изображение полностью влево, чтобы около 10% его было видно на странице. Я думал, что hAlign = "CENTER" сделает то, что мне нужно ... В этом случае RotatedImage наследуется от reportlab.platypus. Я также импортирую ПИЛ. Если бы я смог убедить ReportLab использовать изображение PIL, это также соответствовало бы моим потребностям ... я думаю. Пожалуйста, порекомендуйте.
class RotatedImage(Image):
def wrap(self, availWidth, availHeight):
height, width = Image.wrap(self, availHeight, availWidth)
return width, height
def draw(self):
self.canv.rotate(90)
Image.draw(self)
build_doc = []
for pic in pics:
text = Paragraph(pic,
PS(name='Heading1',
fontName = 'Times-Bold',
spaceAfter = 8,
fontSize = 14,
alignment = TA_CENTER))
if should_rotate(pic): #this just checks if the image.height is greater than the image.width
img = RotatedImage(pic, width = 636, height = 456) #this is the class from mouse & the python
img.hAlign = 'CENTER'
img.vAlign = 'CENTER'
img.drawHeight = 636
img.drawWidth = 456
else:
img = get_image(pic, width = landscape_pic_width * inch)
img.drawHeight = letter_pic_width * inch
img.drawWidth = landscape_pic_width * inch
build_doc.append(KeepTogether([text, img]))