將 Markdown 轉換為 PDF 是 markconv 的另一個核心功能,PDF(Portable Document Format,便攜式文檔格式)是一種跨平臺的文檔格式,能夠在各種設備上保持一致的顯示效果。通過將 Markdown 轉換為 PDF,我們可以方便地分享文檔、打印輸出,或者歸檔保存。??
在使用 markconv 的 PDF 轉換功能之前,我們需要先完成一些環境配置。別擔心,配置過程很簡單,只需要幾分鐘就能搞定!?? 相比傳統的 PDF 轉換工具,markconv 極大地便捷了配置流程,你不需要手動處理復雜的依賴關系,也不需要繁瑣的環境變量配置,一切都為你準備好了!?
這個命令會安裝 markconv 及其所有依賴,包括 pdfkit 等 PDF 轉換相關的庫。安裝過程可能需要幾分鐘,耐心等待一下就好!?
3. 基本使用方法 ??
現在我們已經完成了環境配置,可以開始使用 markconv 將 Markdown 轉換為 PDF 了!使用方法和 HTML 轉換非常相似,只需要幾行代碼就能完成。??
3.1 導入 MDConverter 類 ??
首先,我們需要從 markconv 包中導入 MDConverter 類:
from markconv import MDConverter
MDConverter 是 markconv 的核心轉換器類,它負責將 Markdown 文檔轉換為目標格式。我們之前已經用它來轉換為 HTML,現在我們用它來轉換為 PDF。同一個類,不同的方法,是不是很方便???
3.2 創建轉換器實例 ???
創建轉換器實例非常簡單,我們只需要調用 MDConverter 的構造函數:
converter = MDConverter(css_file="custom.css")
這里我們同樣可以指定自定義 CSS 文件,CSS 樣式會應用到轉換后的 PDF 中。這意味著我們可以完全控制 PDF 的外觀和風格!??
CSS 示例文件 custom.css:
/* custom.css */
body {
background-color: #f5f5f5;
}
h1 {
color: #e74c3c;
border-bottom: 2px solid #e74c3c;
}
code {
background-color: #2c3e50;
color: #ecf0f1;
}
3.3 指定輸入和輸出文件路徑 ??
接下來,我們需要指定輸入的 Markdown 文件路徑和輸出的 PDF 文件路徑:
input_file = r'sample.md'
output_file = 'examples/sample.pdf'
這里有幾個要點需要注意:
輸入文件路徑:我們使用了原始字符串(r 前綴)來避免轉義問題。這在 Windows 系統上特別有用,因為 Windows 的路徑分隔符是反斜杠 \,而在 Python 中反斜杠是轉義字符。??
輸出文件路徑:如果輸出目錄不存在,markconv 會自動創建。這意味著我們不需要手動創建 examples 目錄,程序會幫我們搞定!??
相對路徑:這里使用的是相對路徑,相對于當前工作目錄。你也可以使用絕對路徑。??
3.4 執行轉換操作 ?
最后,我們調用 to_pdf 方法執行轉換:
converter.to_pdf(input_file, output_file)
to_pdf 方法接受兩個參數:
就這么簡單!markconv 會在后臺完成所有轉換工作,包括將 Markdown 轉換為 HTML,再使用 wkhtmltopdf 將 HTML 轉換為 PDF。整個過程對我們來說是透明的,我們只需要調用一個方法就行了!??
4. 完整示例代碼 ??
讓我們把所有代碼整合起來,看看完整的示例:
# 從 markconv 包中導入 MDConverter 類
from markconv import MDConverter
def pdf_basic_example():
"""
PDF 轉換基本使用示例
該函數演示了如何使用 MDConverter 將 Markdown 文件轉換為 PDF 文件
包括:
- 創建轉換器實例(支持自定義 CSS 樣式)
- 指定輸入和輸出文件路徑
- 執行轉換操作
- 使用自定義 CSS 文件美化輸出
"""
# 打印示例標題
print("PDF 轉換基本使用示例")
# 打印分隔線
print("=" * 50)
# 創建 MDConverter 實例,傳入自定義 CSS 文件路徑
# 參數說明:
# - css_file: 自定義 CSS 樣式文件的路徑
# 程序會讀取該文件內容并插入到生成的 HTML 的 <style> 標簽中
# 自定義樣式會覆蓋或補充內置的默認樣式
# - encoding: 文件編碼格式,默認為 'utf-8'
converter = MDConverter(css_file="custom.css")
# 定義輸入的 Markdown 文件路徑(使用原始字符串 r 避免轉義問題)
input_file = r'sample.md'
# 定義輸出的 PDF 文件路徑(相對路徑)
output_file = 'examples/sample.pdf'
# 調用 to_pdf 方法執行轉換
# 參數說明:
# - input_file: 輸入的 Markdown 文件路徑
# - output_file: 輸出的 PDF 文件路徑(如果目錄不存在會自動創建)
converter.to_pdf(input_file, output_file)
print(f"PDF 文件已生成: {output_file}")
# 當腳本被直接運行時,執行示例函數
# 如果腳本被導入為模塊,則不會執行
if __name__ == '__main__':
pdf_basic_example()
這段代碼非常清晰,每一步都有詳細的注釋說明。運行這段代碼后,你會在 examples 目錄下看到生成的 sample.pdf 文件。用 PDF 閱讀器打開它,你就能看到轉換后的效果了!??
5. 總結 ??
通過這篇文檔的學習,我們掌握了如何使用 markconv 將 Markdown 文檔轉換為 PDF 格式。主要內容包括:
安裝和配置 wkhtmltopdf 引擎 ??
安裝 markconv 及其依賴 ??
創建轉換器實例并指定 CSS 樣式文件 ???
指定輸入和輸出文件路徑 ??
執行轉換操作 ?
自定義 CSS 樣式美化輸出 ??
markconv 的 PDF 轉換功能能夠生成高質量的 PDF 文檔。我們不需要復雜的配置,不需要學習繁瑣的 API,只需要幾行代碼就能完成轉換。這正是我們在M0-markconv背景及鏈接目錄(
參考文章:原文鏈接?