Прежде всего, вы можете использовать единицы для значений 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'
)