在Python中获取Weasyprint的基本URI
作者:互联网
我正在将Weasyprint库用于Python,以尝试将html文件打印为pdf.我试图将图像嵌入页面的背景中.这是代码:
HTML(string='''
<h1>The title</h1>
<p>Content goes here
''', base_url=os.path.dirname(os.path.realpath(__file__))).write_pdf("hello.pdf", stylesheets=[CSS(string='body{background-image: url("example_image.png")}')])
我到此代码的输出如下:
Ignored `background-image: url("example_image.png")` at 1:6, Relative URI reference without a base URI: 'example_image.png'.
blah@blah:~/Dropbox/Terraverde/annual_reports$python3 test_excel.py
我试图在Stackoverflow上搜索该问题的解决方案,并阅读了文档,但是我能找到的最接近答案的是关于同一问题但针对Django的以下帖子:Django WeasyPrint CSS integration warning: Relative URI reference without a base URI: <link href=”/static/css/bootstrap.min.css”> at line None
我也尝试在我的代码中使用document.baseURI:
base_url=os.path.dirname(os.path.realpath(__file__))).write_pdf("hello.pdf", stylesheets=[CSS(string='body{background-image: url(document.baseURI + "example_image.png")}')])
但这仍然产生错误:
Parse error at 1:24, unexpected BAD_URI token in property value
关于如何处理问题的任何建议,或者是针对常规Python或Flask的类似于Django的request.build_absolute_uri()的命令?
解决方法:
我在使用pystache渲染的模板中的OSX上遇到了与该标签相同的错误:
<img src="/Users/my_username/my_project/my_image.png" />
因此,我尝试了一下,它的工作原理是:
<img src="file:///Users/my_username/my_project/my_image.png" />
只需在/ Users / …路径之前添加file://. (请注意,它是3个斜线).
标签:flask,css,python,weasyprint 来源: https://codeday.me/bug/20191120/2040337.html