从python访问jaspereports的工具包
pyJasper的Python项目详细描述
H1。PyJaspB.BR/> Byj/PyJasPB是一套基于Python的工具来处理JavaReals.bR/>因为JaspRead是一个Java应用程序,你需要安装Java。纯python客户端可以透明地生成
jaspereport文档。
请参阅"stackoverflow":http://stackoverflow.com/questions/458340/is-there-a-better-layout-language-than-html-for-printing/459352/459352和"this blogposting":http://blogs.23.nu/c0re/2008/07/antville-18473/to了解Pyjasper要解决的问题。
h2。用法
h3。Servlet接口
Servlet根本不保持任何状态。您必须为它提供一个xml数据源、该数据源的xpath表达式和jrxml报表设计。返回生成的pdf或纯文本错误消息。必须通过表单变量"xpath"、"design"和"xmldata"提交相应的数据。
要尝试使用curl。例如,执行pyjasper/backend并启动jetty servlet容器(sh pyjasper httpd.sh)。然后在另一个窗口中使用curl请求呈现pdf。
--form design=@reports/lieferschein.jrxml
--form xmldata=@sample xml/lieferschein.xml
http://localhost:8080/py jasper/jasper.py>;test.pdf现在应该包含一个呈现的pdf文档。python接口
您需要子类@pyjasper.jaspergenerator@并调用它的@generate_pdf()函数。通常,您只需覆盖@uu init_uu()@和@generate_u xml(self,…)@函数,然后使用python"elementtree":http://docs.python.org/lib/module-xml.etree.elementtree.html api生成xml树。例如,
mypdfgenerator类(jasper generator):
"迎宾卡jasper生成器"
def\uu init(self):
super(movementgenerator,self).tobegreated):
"生成jaspereports使用的xml文件"
et.subelement(self.root,"generator")。对于tobegreated中的名称,text=\u revision
:
xml\u greeting=et.subelement(self.root,"greeting")
et.subelement(xml_greeting,"greeting_to").text=unicode(名称)
et.subelement(xml_greeting,"greeting_from").text=u"max"
返回xmlroot
pdf=generator.generate(['nik','tobias','chris','daniel'])
open('/tmp/greetingcard.pdf',"w").write(pdf)
python客户端通过检查@pyjasper_servlet_url@环境变量来查找jasper servlet的url。如果未设置此变量,则使用默认值@http://localhost:8080/py jasper/jasper.py@。
h2。安装
在"python cheeseshop":http://pypi.python.org/pypi/pyjasper或"github":http://github.com/hudora/pyjasper获取它
要安装python客户端接口,只需以管理员身份执行@python setup.py install@即可。这将自动安装所需的依赖项([http://code.google.com/p/httplib2/httplib2])。对于服务器部分,不存在自动安装脚本。只需将@pyjasper/backend/@复制到适当的位置,然后启动@pyjasper-httpd.sh@i使用dan bernsteins[http://cr.yp.to/daemontools/supervise.html supervise]工具来运行Jetty服务器。
h2。历史
**0.2.1**公开发布(2008年夏季)
**0.2**基于Jetty/Servlets的发布(2007年底)
**0.1.1**托管项目公开发布基于长运行Java进程(2006年底)的BR/*****发布(BR/****0.01)每文档一个Java进程(2006)
BR/> H2。文件
*client.py-包含用于生成报表的高级python函数。理论上应该能够使用jaspereports以外的报表生成器。到目前为止,它构建在jasperclient.py.
*backend/-包含驱动jaspereport和实际构建报告的工具。后端曾经是基于Jonas Schwertfeger的XMLJasPePield界面,但是Has-BeNN离开它已经有一段时间了。
*报告-报告源文件(*.jRXML)< BR/> *示例XML-用于报表的示例xml文件
*示例pdf-使用示例xml
h2的报表生成的示例pdf。链接
*"jaspereports":http://en.wikipedia.org/wiki/jaspereports
*"如何将jaspereports与ruby on rails集成":http://wiki.rubyonrails.org/rails/pages/howtointegratejaspereports
*"jasapp":http://www.vmware.com/appliances/directory/311 a vmware virtual appliance提供jaspereports接口
*http://geraldo.sourceforge.net/
jaspereport文档。
请参阅"stackoverflow":http://stackoverflow.com/questions/458340/is-there-a-better-layout-language-than-html-for-printing/459352/459352和"this blogposting":http://blogs.23.nu/c0re/2008/07/antville-18473/to了解Pyjasper要解决的问题。
h2。用法
h3。Servlet接口
Servlet根本不保持任何状态。您必须为它提供一个xml数据源、该数据源的xpath表达式和jrxml报表设计。返回生成的pdf或纯文本错误消息。必须通过表单变量"xpath"、"design"和"xmldata"提交相应的数据。
要尝试使用curl。例如,执行pyjasper/backend并启动jetty servlet容器(sh pyjasper httpd.sh)。然后在另一个窗口中使用curl请求呈现pdf。
--form xmldata=@sample xml/lieferschein.xml
http://localhost:8080/py jasper/jasper.py>;test.pdf现在应该包含一个呈现的pdf文档。python接口
您需要子类@pyjasper.jaspergenerator@并调用它的@generate_pdf()函数。通常,您只需覆盖@uu init_uu()@和@generate_u xml(self,…)@函数,然后使用python"elementtree":http://docs.python.org/lib/module-xml.etree.elementtree.html api生成xml树。例如,
mypdfgenerator类(jasper generator):
"迎宾卡jasper生成器"
def\uu init(self):
super(movementgenerator,self).tobegreated):
"生成jaspereports使用的xml文件"
et.subelement(self.root,"generator")。对于tobegreated中的名称,text=\u revision
:
xml\u greeting=et.subelement(self.root,"greeting")
et.subelement(xml_greeting,"greeting_to").text=unicode(名称)
et.subelement(xml_greeting,"greeting_from").text=u"max"
返回xmlroot
pdf=generator.generate(['nik','tobias','chris','daniel'])
open('/tmp/greetingcard.pdf',"w").write(pdf)
python客户端通过检查@pyjasper_servlet_url@环境变量来查找jasper servlet的url。如果未设置此变量,则使用默认值@http://localhost:8080/py jasper/jasper.py@。
h2。安装
在"python cheeseshop":http://pypi.python.org/pypi/pyjasper或"github":http://github.com/hudora/pyjasper获取它
要安装python客户端接口,只需以管理员身份执行@python setup.py install@即可。这将自动安装所需的依赖项([http://code.google.com/p/httplib2/httplib2])。对于服务器部分,不存在自动安装脚本。只需将@pyjasper/backend/@复制到适当的位置,然后启动@pyjasper-httpd.sh@i使用dan bernsteins[http://cr.yp.to/daemontools/supervise.html supervise]工具来运行Jetty服务器。
h2。历史
**0.2.1**公开发布(2008年夏季)
**0.2**基于Jetty/Servlets的发布(2007年底)
**0.1.1**托管项目公开发布基于长运行Java进程(2006年底)的BR/*****发布(BR/****0.01)每文档一个Java进程(2006)
BR/> H2。文件
*client.py-包含用于生成报表的高级python函数。理论上应该能够使用jaspereports以外的报表生成器。到目前为止,它构建在jasperclient.py.
*backend/-包含驱动jaspereport和实际构建报告的工具。后端曾经是基于Jonas Schwertfeger的XMLJasPePield界面,但是Has-BeNN离开它已经有一段时间了。
*报告-报告源文件(*.jRXML)< BR/> *示例XML-用于报表的示例xml文件
*示例pdf-使用示例xml
h2的报表生成的示例pdf。链接
*"jaspereports":http://en.wikipedia.org/wiki/jaspereports
*"如何将jaspereports与ruby on rails集成":http://wiki.rubyonrails.org/rails/pages/howtointegratejaspereports
*"jasapp":http://www.vmware.com/appliances/directory/311 a vmware virtual appliance提供jaspereports接口
*http://geraldo.sourceforge.net/