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は返されません。