def __render_img(self, size, pdf_page=None):
# TODO(Jflesch): In a perfect world, we shouldn't use ImageSurface.
# we should draw directly on the GtkImage.window.cairo_create()
# context. It would be much more efficient.
logger.debug('Building img from pdf: {}'.format(size))
if pdf_page is None:
pdf_page = self.pdf_page
base_size = self.get_base_size(pdf_page)
width = int(size[0])
height = int(size[1])
factor_w = width / base_size[0]
factor_h = height / base_size[1]
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
ctx = cairo.Context(surface)
ctx.scale(factor_w, factor_h)
pdf_page.render(ctx)
return surface2image(surface)
评论列表
文章目录