python3 reportlab drawImage Высоко к центру - PullRequest
0 голосов
/ 06 ноября 2018
c = canvas.Canvas('data.pdf', pagesize= [width*inch,height*inch])
c.drawImage('dataptah',x,y, width,height)
c.save()

Я не могу отцентрировать изображение по высоте, так что мне нужно знать х и у единицы, или положите что-нибудь.

1 Ответ

0 голосов
/ 06 ноября 2018

Прежде всего, вы можете использовать единицы для значений x, y, width и height в вызове drawImage, как вы это делали для pagesize. Таким образом, если вы знаете соотношение сторон своего изображения, вы можете рассчитать эти значения для точного центрированного положения.

Справочная документация упоминает два других параметра, которые могут оказаться полезными:

  • preserveAspectRation=True сохраняет соотношение сторон изображения, даже если поле, указанное с помощью x, y, width, height, имеет другое соотношение сторон.
  • anchor='c' указывает позицию привязки изображения, в данном случае центр.

Таким образом, если вы добавите эти два параметра и отцентрируете рамку на странице, ваше изображение также должно появиться по центру. Вот пример:

c.drawImage('dataptah', 
     width/4*inch, height/4*inch,
     width/2*inch, height/2*inch,
     preserveAspectRatio=True, anchor='c'
)
...