从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/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有未知数量条件的java If语句   java如何在Spark中使用两个“条件”进行过滤?   雅加达ee为ColdFusion提供的最佳Java ee服务器   java如何在jersey的MessageBodyWriter方法中获取writeTo中的anotations值?   java从脚本文件调用jar文件中的函数   java在执行insert语句后,如何获得id值为的语句?   在OS X上设置OpenCV Java绑定   java使用for循环遍历数组x。以字符串形式返回x的元素,其中每个元素由一个空格分隔   ApacheiClientBuilder为Algolia Java创建的APIClient是线程安全的吗?   java在DFS/BFS算法中获取邻居时避免内存分配?   java使用AES/CBC/PKCS5P加密大文件(2GB)   允许保存/加载列布局的Java DB网格组件   队列大小为1的java Spring调度   跑步带有Java参数的exe   java正则表达式将所有“<”和“>”标记替换为“&lt;”及“&gt;”在<<![CDATA]>标签?   java何时同步变量?