Python 代码轻松实现 HTML 文件及HTML字符串到 PDF 文档的转换

发布时间:2024年01月11日

从网页生成文档已经是一种常见需求。无论是为了存档网页内容、离线共享网页或创建可打印的报告,经常会需要一种可靠的方法将HTML文件转换为稳定且普遍可访问的PDF格式。通过利用强大的Python语言,我们可以轻松地使用Python程序将HTML转换为PDF,从而实现从网页文件内容生成PDF的目的。

本文重点介绍如何利用Python代码进行HTML到PDF的转换,包括转换主要步骤和代码示例等内容。文章涵盖以下方面:

使用Python将HTML转换为PDF的要点

借助Python库,开发人员和用户可以轻松地从HTML文件生成外观专业的PDF文档,包括内容、格式和超链接。同时,Python程序能将这一过程自动化,实现轻松、高效的PDF生成。但由于动态内容、渲染差异等原因,HTML到PDF的转换也具有一定的局限性。因此,为了获得最佳结果,当使用Python进行HTML到PDF转换时,开发人员可以选择更简单的网页,也可以在转换之前预处理HTML文件,如只保留文本内容。
本文所介绍的方法需要用到Spire.Doc for Python,可从官网下载或通过PyPI安装:pip install Spire.Doc

在使用此API转换HTML到PDF时,主要用到以下类和方法:

项目描述
Document 类表示Word文档的类。
Document.LoadFromFile() 方法以DOCX、HTML和其他格式加载文件作为Word文档。
Document.SaveToFile() 方法将Word文档保存为DOCX、PDF、HTML和其他格式的文件。
Paragraph.AppendHTML() 方法在文档中呈现HTML字符串的方法。
FileFormat枚举类,表示不同类型的文件格式。
XHTMLValidationType枚举类,表示XHTML验证的选项,包括无验证、严格验证和过渡验证。

使用Python进行HTML到PDF转换的步骤和代码示例

通过使用LoadFromFile方法加载HTML文件并通过使用SaveToFile方法将其保存为PDF文件,开发人员可以使用简单的Python代码将HTML转换为PDF。主要步骤如下:

  1. 导入所需的模块。
  2. 创建一个 Document 类的对象。
  3. 使用 Document.LoadFromFile() 方法加载HTML文件。
  4. 使用 Document.SaveToFile() 方法将HTML文件转换为PDF并保存。

以下是一个在Python中将HTML转换为PDF的代码示例:

from spire.doc import Document
from spire.doc import FileFormat
from spire.doc import XHTMLValidationType

# 创建一个 Document 类对象
doc = Document()

# 加载一个 HTML 文件
doc.LoadFromFile("示例.html", FileFormat.Html, XHTMLValidationType.none)

# 将文件转换为 PDF 格式并保存
doc.SaveToFile("output/HTML转PDF.pdf", FileFormat.PDF)
doc.Close()

转换效果:
HTML文件转PDF

使用Python将HTML字符串渲染为PDF的步骤和代码示例

HTML字符串通常指包含HTML标签、属性和内容的文本,用于描述网页的结构和呈现。通过使用 Paragraph.AppendHTML() 方法,开发人员可以轻松地在文档中呈现HTML字符串,然后将其保存为PDF文件。主要步骤如下:

  1. 导入所需的模块。
  2. 创建一个 Document 类的对象。
  3. 使用 Document.AddSection() 方法添加一个节(section)到文档,并使用 Section.AddParagraph() 方法添加一个段落(paragraph)到节中。
  4. 指定HTML字符串。
  5. 使用 Paragraph.AppendHTML() 方法在文档中呈现HTML字符串。
  6. 使用 Document.SaveToFile() 方法将文档转换为PDF并保存。

以下是一个在Python中将HTML字符串转换为PDF的代码示例:

from spire.doc import Document
from spire.doc import FileFormat

# 创建一个 Document 类的对象
doc = Document()

# 向文档添加一个节(section)
sec = doc.AddSection()

# 向节添加一个段落(paragraph)
par = sec.AddParagraph()

# 指定 HTML 字符串
htmlString = """
<html>
<head>
  <title>HTML 示例</title>
</head>
<body>
  <h1 style="color: blue;">欢迎访问我的网站</h1>

  <h2>个人信息</h2>
  <ul>
    <li>姓名:John Doe</li>
    <li>年龄:30</li>
    <li>国籍:美国</li>
  </ul>

  <h2>工作经历</h2>
  <table border="1">
    <tr>
      <th>公司</th>
      <th>职位</th>
      <th>年份</th>
    </tr>
    <tr>
      <td>ABC 公司</td>
      <td>软件工程师</td>
      <td>2018-2020</td>
    </tr>
    <tr>
      <td>XYZ 公司</td>
      <td>项目经理</td>
      <td>2020-2022</td>
    </tr>
  </table>

  <h2>项目列表</h2>
  <ol>
    <li>项目 A</li>
    <li>项目 B</li>
    <li>项目 C</li>
  </ol>

</body>
</html>
"""

# 在文档中渲染 HTML 字符串
par.AppendHTML(htmlString)

# 将文档保存为 PDF 文件
doc.SaveToFile("output/HTML字符串转PDF.pdf", FileFormat.PDF)
doc.Close()

生成的PDF文档:
HTML字符串转PDF

免费在线HTML到PDF转换器

对于少量简单的HTML文件转换为PDF文档且不需要进行复杂操作,推荐使用免费在线PDF转换器。该工具通过简单上传HTML文件并下载生成的PDF文档实现轻松转换。它提供了一个简单直接的解决方案,方便快捷地进行转换操作。
免费在线PDF转换器

总结

以上文章侧重于使用Python进行HTML到PDF转换。它解释了使用Python将HTML转换为PDF的优势和限制,并提供了使用Spire.Doc for Python进行HTML到PDF和HTML字符串到PDF转换的说明和代码示例。通过参考上述方法,开发人员可以创建自己的Python程序,实现自动化和高质量的转换。如果有任何问题,可前往Spire产品论坛寻求技术支持。

文章来源:https://blog.csdn.net/Eiceblue/article/details/135535683
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。