python pdfkit wkhtmltopdf生成pdf

pdfkitがPDFファイルを生成する方法:

①	pdfkit.from_string()  # 将字符串转成pdf文件,如果字符串是html代码,pdf也是识别的
②	pdfkit.from_file()  # 将文件转成pdf文件
③	pdfkit.from_url()  # 将网址的整个内容转成pdf文件

PDFコードサンプルを生成します。

	# info 代表文件路径
	# e_file_path 代表生成的pdf具体路径
	# 如果output_path=False 代表返回一个字符串
	result = pdfkit.from_file(info, output_path=e_file_path, configuration=config)

pdfkitが生成するpdfはwkhtmltopdfに依存し、wkhtmltopdfは軽量ソフトウェアレベルである依存関係パッケージ全体のレベルであるため、すべてwkhtmltopdfソフトウェアをインストールする必要があります。インストールが完了したら、次の
ようなwkhtmltopdfが実行されるパスを取得します。 :C:\ Program Files \ wkhtmltopdf \ bin \ wkhtmltopdf.exe
ここに写真の説明を挿入

	path_wk = "C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"
	config = pdfkit.configuration(wkhtmltopdf=path_wk)
PDFを生成する過程で注意が必要なピット:

①PDFファイルの名前を中国名にすることはできません。ファイル名はUnicodeエンコーディングです。

	e_file_path = "测试.pdf"
	pdfkit.from_string(info, e_file_path, configuration=config)  
	# 由于要生成的pdf文件名是中文,方法不识别中文,抛出字符编码报错,无法生成pdf文件

②文字エンコードが設定されていない場合、PDFコンテンツが文字化けする可能性があります

	# 设置方式
	options = {
	        'encoding': "utf-8"
	    }
	# 也可以设置生成pdf的大小等
	options = {
	        'encoding': "utf-8",
			'page-size': 'A4',
	        'margin-top': '0mm',
	        'margin-right': '0mm',
	        'margin-bottom': '0mm',
	        'margin-left': '0mm'
	    }
	 pdfkit.from_string(info, e_file_path, options=options, configuration=config)

③pdfの生成過程でcssファイルのスタイルが引用され、相対パスを引用できません。相対パスのあるcssファイルは認識されません。絶対パスのcssファイルはpdfの生成過程で認識されます。

 	a = PROJECT_ROOT + '/static/v3/bk.css'
    b = PROJECT_ROOT + '/static/v3/bootstrap.min.css'
    c = PROJECT_ROOT + '/static/v3/font-awesome.css'
    css = [a, b, c]
    result = pdfkit.from_string(info, e_file_path, css=css, configuration=config)
    注意:css可以是一个str路径,也可以是一个css路径列表

④pdfを生成する場合、アイコンcssファイルは認識されません
。⑤生成されたpdfファイルが既に存在する場合、同じディレクトリに生成された重複pdfファイルは上書きされず、エラーが報告されます
。⑥pdfが正常に生成されると、返される結果はTrueです。PDFの生成に失敗した場合、Falseは返されません。

おすすめ

転載: blog.csdn.net/qq_42631707/article/details/99735884