如何使用 python 脚本将 JSON 数据转换为 PDF
Posted
技术标签:
【中文标题】如何使用 python 脚本将 JSON 数据转换为 PDF【英文标题】:How to convert JSON data to PDF using python script 【发布时间】:2018-06-24 01:18:37 【问题描述】:我想将 JSON 数据转换为从 API 获取的 PDF。
示例 JSON 数据
"data": [
"state": "Manchester",
"quantity": 20
,
"state": "Surrey",
"quantity": 46
,
"state": "Scotland",
"quantity": 36
,
"state": "Kent",
"quantity": 23
,
"state": "Devon",
"quantity": 43
,
"state": "Glamorgan",
"quantity": 43
]
我找到了这个脚本: http://code.activestate.com/recipes/578979-convert-json-to-pdf-with-python-and-xtopdf/
但得到错误
没有模块 PDFWriter
还有其他方法可以转换 JSON 数据 PDF。
请帮忙。
【问题讨论】:
似乎 xtopdf 是这样的库或框架。这个 (jugad2.blogspot.com.tr/2012/07/…) 解释了如何安装 xtopdf 可能会对你有所帮助。 ***.com/questions/6413441/python-pdf-library 【参考方案1】:模块 PDFWriter 在xtopdf
PDFWriter - xtopdf 工具包的核心类 - 现在可以与 一个 Python 上下文管理器,也就是 Python
with
语句。
(http://code.activestate.com/recipes/578790-use-pdfwriter-with-context-manager-support/)
如何安装xtopdf
在https://bitbucket.org/vasudevram/xtopdf:
安装使用:
要安装文件,首先确保您已下载并安装 安装了上面提到的所有先决条件,包括设置 诸如将所需目录添加到 PYTHONPATH 等步骤。然后,复制 xtopdf.zip 中的所有文件到您的目录中 PYTHONPATH。
要使用任何 Python 程序,请将 .py 文件运行为:
python 文件名.py
这将给出关于正确用法和参数的用法消息 预计。
要运行 shell 脚本,请执行与上述相同的操作。
开发人员可以查看源代码以获取更多信息。
另一种方法是使用pdfdocument
创建pdf,可以使用pip
(https://pypi.python.org/pypi/pdfdocument) 安装它
从 json 数据 (How can I parse GeoJSON with Python, Parse JSON in Python) 中解析数据并使用 pdfdocument
(https://pypi.python.org/pypi/pdfdocument) 将其打印为 pdf
import json
data = json.loads(datastring)
from io import BytesIO
from pdfdocument.document import PDFDocument
def say_hello():
f = BytesIO()
pdf = PDFDocument(f)
pdf.init_report()
pdf.h1('Hello World')
pdf.p('Creating PDFs made easy.')
pdf.generate()
return f.getvalue()
【讨论】:
【参考方案2】:from json2html import *
import json
import tempfile
class PdfConverter(object):
def __init__(self):
pass
def to_html(self, json_doc):
return json2html.convert(json=json_doc)
def to_pdf(self, html_str):
return pdfkit.from_string(html_str, None)
def main():
stowflw =
"data": [
"state": "Manchester",
"quantity": 20
,
"state": "Surrey",
"quantity": 46
,
"state": "Scotland",
"quantity": 36
,
"state": "Kent",
"quantity": 23
,
"state": "Devon",
"quantity": 43
,
"state": "Glamorgan",
"quantity": 43
]
pdfc = PdfConverter()
with open("sample.pdf", "wb") as pdf_fl:
pdf_fl.write(pdfc.to_pdf(pdfc.to_html(json.dumps(stowflw))))
-
安装json2html
安装 pdfkit(需要 wkhtmltox)
【讨论】:
以上是关于如何使用 python 脚本将 JSON 数据转换为 PDF的主要内容,如果未能解决你的问题,请参考以下文章
python 一个将pandas数据帧转换为JSON对象的小脚本。有没有更好的办法?
使用 Python 将 CSV 文件数据转换为 JSON 格式