Python 语言 用 Python+Pdfkit 将 Markdown 笔记转成 PDF 带目录 + 高亮

Python阿木 发布于 1 天前 2 次阅读


Python+Pdfkit 将 Markdown 笔记转成 PDF(带目录 + 高亮)技术解析

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML格式。随着信息量的爆炸式增长,Markdown 已经成为许多开发者、作家和知识工作者记录和分享知识的重要工具。Markdown 文档在阅读体验上往往不如 PDF 文件,特别是在需要打印或分享时。本文将介绍如何使用 Python 和 Pdfkit 将 Markdown 笔记转换成带有目录和文本高亮的 PDF 文件。

准备工作

在开始之前,请确保您已经安装了以下软件和库:

- Python 3.x
- Pdfkit
- Markdown 解析库(如 markdown 或 markdown2)

您可以通过以下命令安装 Pdfkit 和 Markdown 解析库:

bash
pip install pdfkit
pip install markdown

1. 创建 Markdown 文档

创建一个 Markdown 文档,例如 `note.md`:

markdown
文档标题

这是一个 Markdown 文档的示例。

目录

- [第一章](第一章)
- [第二章](第二章)

第一章

这是第一章的内容。

第二章

这是第二章的内容。

2. 使用 Pdfkit 转换 Markdown 为 PDF

接下来,我们将使用 Pdfkit 库将 Markdown 文档转换为 PDF。我们需要创建一个 Python 脚本 `convert_markdown_to_pdf.py`:

python
import pdfkit
import markdown
from markdown.toc import MarkdownToc

def convert_markdown_to_pdf(input_file, output_file):
读取 Markdown 文档
with open(input_file, 'r', encoding='utf-8') as file:
markdown_content = file.read()

解析 Markdown 文档并生成目录
toc = MarkdownToc(markdown_content)
if toc:
markdown_content = toc.toc + markdown_content

将 Markdown 转换为 HTML
html_content = markdown.markdown(markdown_content)

使用 Pdfkit 将 HTML 转换为 PDF
pdfkit.from_string(html_content, output_file)

调用函数
convert_markdown_to_pdf('note.md', 'output.pdf')

3. 高亮文本

为了在 PDF 中高亮文本,我们需要在 Markdown 文档中添加特定的标记。例如,使用 `==高亮文本==` 来标记需要高亮的文本。然后,我们可以使用正则表达式在 HTML 内容中查找这些标记,并添加相应的 CSS 样式。

更新 `convert_markdown_to_pdf.py` 脚本:

python
import pdfkit
import markdown
from markdown.toc import MarkdownToc
import re

def convert_markdown_to_pdf(input_file, output_file):
读取 Markdown 文档
with open(input_file, 'r', encoding='utf-8') as file:
markdown_content = file.read()

解析 Markdown 文档并生成目录
toc = MarkdownToc(markdown_content)
if toc:
markdown_content = toc.toc + markdown_content

将 Markdown 转换为 HTML
html_content = markdown.markdown(markdown_content)

高亮文本
html_content = re.sub(r'==([^=]+)==', r'1', html_content)

使用 Pdfkit 将 HTML 转换为 PDF
pdfkit.from_string(html_content, output_file)

调用函数
convert_markdown_to_pdf('note.md', 'output.pdf')

4. 生成 PDF 文件

运行 `convert_markdown_to_pdf.py` 脚本,您将在当前目录下找到名为 `output.pdf` 的 PDF 文件。打开该文件,您将看到带有目录和文本高亮的 Markdown 笔记。

总结

本文介绍了如何使用 Python 和 Pdfkit 将 Markdown 笔记转换成带有目录和文本高亮的 PDF 文件。通过结合 Markdown 的易用性和 PDF 的可打印性,我们可以更好地记录和分享知识。希望本文能帮助您提高工作效率,更好地管理您的笔记。