如何使用给定的模板生成PDF,并使用Python或NodeJS中的动态数据将其部署在AWS上

寻找推荐使用Python(优先)或NodeJS的库的建议,该库最好可以从要在AWS中运行的动态HTML模板生成pdf文件。要求是生成要发送给客户的发票pdf。

遇到了以下2个Node库:

  • PDFKit
  • jsPDF

在这里,我们可能不得不处理X和Y的数字。

更好的方法是,我们可以简单地使用html / css生成带有占位符的模板,该占位符可以被动态数据替换(来自数据库查询)。 任何建议,将不胜感激。

谢谢!

wangyue001 回答:如何使用给定的模板生成PDF,并使用Python或NodeJS中的动态数据将其部署在AWS上

https://www.npmjs.com/package/pdfmake 上面的库在node.js中的动态发票方面提供了灵活性

,

这种方法在Python中使用以下库对我有效:

Jinja2-用于使用自定义数据生成HTML

xhtml2pdf-用于从HTML生成PDF

考虑在您的项目目录中,有一个模板文件(invoice.html)和python文件(pdf_generator.py)

pdf_generator.py

from xhtml2pdf import pisa 
import jinja2
templateLoader = jinja2.FileSystemLoader(searchpath="./")
templateEnv = jinja2.Environment(loader=templateLoader)
TEMPLATE_FILE = "invoice.html"
template = templateEnv.get_template(TEMPLATE_FILE)

# This data can come from database query
body = {
    "data":{
        "order_id": 123,"order_creation_date": "2020-01-01 14:14:52","company_name": "Test Company","city": "Mumbai","state": "MH",}
}

# This renders template with dynamic data 
sourceHtml = template.render(json_data=body["data"]) 
outputFilename = "invoice.pdf"

# Utility function
def convertHtmlToPdf(sourceHtml,outputFilename):
    # open output file for writing (truncated binary)
    resultFile = open(outputFilename,"w+b")

    # convert HTML to PDF
    pisaStatus = pisa.CreatePDF(
            src=sourceHtml,# the HTML to convert
            dest=resultFile)           # file handle to receive result

    # close output file
    resultFile.close()

    # return True on success and False on errors
    print(pisaStatus.err,type(pisaStatus.err))
    return pisaStatus.err

if __name__ == "__main__":
    pisa.showLogging()
    convertHtmlToPdf(sourceHtml,outputFilename)

invoice.html

<!DOCTYPE html>
<html lang="en">
<body>
Name: {{ json_data.company_name }} <br>
City/State: {{ json_data.city }},{{ json_data.state }} <br>
Date: {{ json_data.order_creation_date }} <br>
Order ID: {{ json_data.order_id }} <br>
</body>
</html>
,

使用https://getpdfapi.com,您可以使用基于Web的编辑器设计PDF模板,完成后,将为您创建REST API端点。

此端点可用于将JSON格式的数据发送到刚创建的PDF模板。 您唯一需要编写的代码就是集成了API的代码。

您可以在此处查看快速演示:https://www.youtube.com/watch?v=cv4ZYd_aJO8

本文链接:https://www.f2er.com/2995262.html

大家都在问