编程语言
首页 > 编程语言> > 在Python中获取Weasyprint的基本URI

在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