我想将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。
请帮助。
答案 0 :(得分:0)
模块PDFWriter位于xtopdf
PDFWriter - xtopdf工具包的核心类 - 现在可以与之一起使用 Python上下文管理器,a.k.a。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 filename.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)
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()
答案 1 :(得分:0)
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))))