У меня есть рисунок svg: Drawing.getBounds()=(14.173228346456694, 14.173228346456654, 581.1023622047245, 581.1023622047245), Drawing.width=595.2755905511812, Drawing.height=595.2755905511812, Drawing.transform=(1, 0, 0, 1, 0, 0), Drawing.hAlign='LEFT', Drawing.vAlign='BOTTOM'
Я поворачиваю и помещаю несколько рисунков в ряд*col массив:
Код: Выделить всё
r = i // col
c_idx = i % col
x = c_idx * cell_w + padding
y = page_height - ((r + 1) * cell_h) + padding
drawing = svg2rlg(svg_path)
if drawing is None:
raise ValueError("Could not convert SVG to drawing object.")
# Scale to fit within cell
print(f"{drawing.getBounds()=}, {drawing.width=}, {drawing.height=}, {drawing.transform=}, {drawing.hAlign=}, {drawing.vAlign=}")
if rotate_x_y[0] > 0:
drawing.rotate(rotate_x_y[0], rotate_x_y[1]*drawing.width, rotate_x_y[2]*drawing.height)
max_w = cell_w - 2 * padding
max_h = cell_h - 2 * padding
scale_x = max_w / drawing.width
scale_y = max_h / drawing.height
scale = min(scale_x, scale_y)
drawing.width *= scale
drawing.height *= scale
drawing.scale(scale, scale)
# Center in cell
dx = x + (max_w - drawing.width) / 2
dy = y + (max_h - drawing.height) / 2
renderPDF.draw(drawing, c, dx, dy)
Я попробовал вызвать draw.rotate(90), похоже, это то же самое, что и Drawing.rotate(90, 0, 0)
центр вращения также не находится в w/2, h/2
Я всегда получаю очень странные результаты, что бы я ни пробовал.
исходный PDF-файл выглядит так:

повернутые результаты:




Подробнее здесь: https://stackoverflow.com/questions/798 ... es-drawing
Мобильная версия