将 PDF 艺术作品放置在 Reportlab Canvas 的特定位置

Placing PDF Art on Reportlab Canvas at Specific Location

我目前正在进行一个项目,我想将我拥有的 PDF 格式的艺术作品放到 ReportLab canvas 页面的特定位置。我的想法是,我将动态放置 4 件独立的艺术品来创建 pdf 页面之一。

现在我可以将艺术作品放到 canvas 上,如下所示:

    page = PdfReader(artfile, decompress=False).pages[0]
    p = pagexobj(PageMerge().add(page).render())
    c.doForm(makerl(c, p))

我试图找到一些类似于 drawImage 的方法,允许您提供坐标,或某种 canvas 设置绘制开始位置。有没有一种方法可以在不首先转换为图像文件的情况下执行此操作,因为所有艺术作品都将以 pdf 格式接收,因此最好在不考虑转换问题的情况下处理它。所有示例似乎每页只放置一个项目,到目前为止我还没有在文档中找到任何内容。

rst2pdf 可以使用 pdfrw 放置 PDF。您可以在 vectorpdf.VectorPdf.drawOn():

中查看放置代码
canv.saveState()
canv.translate(x, y)
canv.scale(xscale, yscale)
canv.doForm(xobj_name)
canv.restoreState()

免责声明:我是 pdfrw 和 rst2pdf 的 vectorpdf 扩展的主要作者。