我正在研究一种报告解决方案,使用html和css构建报告,并使用weasyprint将其转换为pdf。我正在通过Amazon Sagemaker进行此操作,并使用BeautifulSoup构建html。
我需要将图像添加到pdf中,但是将其添加到html如下所示不起作用:
img = soup.new_tag('img')
img['src'] = 'img.jpg'
通常,在使用SageMaker时,我只引用文件名(当与脚本保存在同一文件夹中时),一切正常进行。
我开始考虑也许我只需要对图像进行base64编码并将其直接放入html中,如下所示:
img = soup.new_tag('img')
img['src'] = 'data:image/jpeg;base64,' + image_data
其中image_date
是base64编码的图像。我知道这行得通,因为我在浏览器中打开了html文件并看到了图像,但是仍然在pdf中看到了我的alt=xxx
。
有人知道如何通过weasyprint将这些图像导入pdf吗?这和SageMaker有关吗?我无法在本地计算机上进行测试,因为它是Windows,而weasyprint在Windows上不起作用(或者我太笨了,无法使其正常工作)。我选择了weasyprint,因为它支持@page属性,而我需要这些属性。