Installationsbibliothek
pip install pdfkit
Zweiter Schritt
Download-Schrittewkhtmltopdf
https://wkhtmltopdf.org/downloads.html
Laden Sie das komprimierte 7z-Paket herunter und dekomprimieren Sie es. Es ist keine Installation erforderlich.
Die Struktur nach der Dekomprimierung sollte so aussehen. Ich füge sie gerne mit relativen Pfadverweisen in das Projekt ein ( Sie können auch absolute Pfade verwenden und andere Orte angeben)
import pdfkit
# 将 wkhtmltopdf.exe程序 路径
path_wkthmltopdf = './wkhtmltox/bin/wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
def url_to_pdf(url, to_file):
# 生成pdf文件,to_file为文件路径
pdfkit.from_url(url, to_file, configuration=config, options={
'encoding': 'utf-8'})
print('完成')
# 这里传入我知乎专栏文章url,转换为pdf
# url_to_pdf(r'https://m.zhijiao.cn/newsmini/detail/102201', './招生简章/102201.pdf')
# html文件转pdf
def file_to_pdf(path, to_file):
# 生成pdf文件,to_file为文件路径
pdfkit.from_file(path, to_file, configuration=config, options={
'encoding': 'utf-8'})
print('完成')
# file_to_pdf('./123.html', './xxx/123.pdf')
pdf_err_counts = 0
# html字符串转pdf
def string_to_pdf(string, to_file):
global pdf_err_counts
# 生成pdf文件,to_file为文件路径
try:
pdfkit.from_string(string, to_file, configuration=config, options={
'encoding': 'utf-8'})
except Exception as e:
pdf_err_counts += 1
print('生成pdf失败', pdf_err_counts, e)
Es ist am besten, jede Funktion wie
string_to_pdf
zu verwenden, um Fehler abzufangen, was das Programm robuster machen und Programmstopps aufgrund von Konvertierungsfehlern vermeiden kann (andere werden nicht geschrieben, da ich keine habe). benutze und bin zu faul, sie zu schreiben) )
Referenz: https://www.zhihu.com/tardis/zm/art/94608155?source_id=1005
Es gibt einen Referenzartikel zum Konvertierungseffekt, ich finde ihn hübsch gut, das ist etwas langsam.