将 Gmail 转换为 PDF:HTML 中的嵌入图像

Posted

技术标签:

【中文标题】将 Gmail 转换为 PDF:HTML 中的嵌入图像【英文标题】:converting Gmail to PDF: embedded images in HTML 【发布时间】:2019-08-14 11:51:30 【问题描述】:

我正在使用 Gmail API 下载电子邮件。当这些电子邮件是 html 时,我尝试使用 Python 的 pdfkit 将它们转换为 PDF。

这在许多情况下都有效,但在某些情况下,html 有效负载包含图像标签,如src=“cid:169abdc4ae2c4da871d2”

这个“cid”标签似乎是指作为多部​​分电子邮件的一部分发送的图像,但 PDFkit 无法处理。错误是:

wkhtmltopdf reported an error:
Loading pages (1/6)
Error: Failed to load cid:169abf0d0cdfffb7aff2, with network status code 301 and http status code 0 - Protocol "cid" is unknown

我该如何解决这个问题?有没有办法将我从 gmail 有效负载中获得的 HTML 转换为具有适当图片源的标准 HTML?

【问题讨论】:

试试这里的步骤? ***.com/questions/55130360/… 请阅读this answer。希望对您有所帮助! 【参考方案1】:

您可以在w3lib Package中使用“remove_tags”方法:

删除所有标签:

import w3lib.html
doc = '<div><p><b>This is a link:</b> <a href="http://www.example.com">example</a></p></div>'
w3lib.html.remove_tags(doc)
'This is a link: example'

删除特定标签:

 w3lib.html.remove_tags(doc, which_ones=('a','b'))
'<div><p>This is a link: example</p></div>'

【讨论】:

以上是关于将 Gmail 转换为 PDF:HTML 中的嵌入图像的主要内容,如果未能解决你的问题,请参考以下文章

如何将 PDF 转换为 HTML?

缩放以适应:嵌入在 HTML 中的 PDF

如何将带有嵌入图像的 XHTML+CSS 转换为 XSL-FO?

如何阻止电子邮件中的嵌入图像被 GMail 显示为附件?

带有嵌入 HTML 的 PDF 报告

Gmail 中的 HTML 电子邮件 - 嵌入图像