如何使用XHTML2PDF在PDF文件中添加静态文件?

发布于 2025-01-20 15:51:45 字数 1258 浏览 1 评论 0原文

我正在尝试使用XHTML2PDF在我的PDF文件中的文件夹中添加静态图像。

我的app.py看起来像这样。

from xhtml2pdf import pisa
from pathlib import Path

output_filename = "output.pdf"
source_html = Path('template.html').read_text()
print(source_html)

result_file = open(output_filename, "w+b")

pisaStatus = pisa.CreatePDF(
    source_html,
    dest=result_file)
result_file.close()

我的template.html看起来像这样。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <h1>Title of the document.</h1>
    <img src="img/logo.png" />
  </body>
</html>

我的logo.png位于img沿app.py的侧面。

app.py
img/
   logo.png
template.html

当我运行时

python app.py      

,确实会生成PDF文件,但是丢失了图像。这给了我以下错误。

Extract data form local file
Need a valid file name!
'<img src="img/logo.png"/>'

如何解决这个问题?

I am trying add a static image which is already there in my folder in my pdf file using xhtml2pdf.

My app.py looks like this.

from xhtml2pdf import pisa
from pathlib import Path

output_filename = "output.pdf"
source_html = Path('template.html').read_text()
print(source_html)

result_file = open(output_filename, "w+b")

pisaStatus = pisa.CreatePDF(
    source_html,
    dest=result_file)
result_file.close()

And my template.html looks like this.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <h1>Title of the document.</h1>
    <img src="img/logo.png" />
  </body>
</html>

My logo.png lies in the img folder along the side of app.py.

app.py
img/
   logo.png
template.html

When I run

python app.py      

This do generate the pdf file, however the image is missing. And it gives me the following error.

Extract data form local file
Need a valid file name!
'<img src="img/logo.png"/>'

How to resolve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事灯 2025-01-27 15:51:45

它适用于 Alpine 3.12。 Alpine升级到3.16后,我遇到了同样的错误。我必须通过 chmod 444 img/logo.png 使 png 文件对每个人都可读。

It worked on Alpine 3.12. After the Alpine has upgraded to 3.16, I experienced the same error. I have to make the png file readable to everyone by chmod 444 img/logo.png.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文