我正在寻找可以在 PHP 中使用并且类似于水晶报表的东西。我基本上需要一个布局设置,这意味着我可以通过插入数据来输出发票,然后将其发送到打印机。
到目前为止我发现的最接近的是 PDFB,但它有点痛苦,因为它需要精确定位。
我想要一些可以基于模板(最好是基于 XML)生成发票的东西,然后将其输出到易于我们打印的表单(PostScript 会很好!)
它也需要支持条形码(尽管这些可以生成为 GD 图像)
另一个要求是这必须是 FLOSS
通过PHP-JavaBridge将 XML + XSL:FO 与Apache FOP一起使用。
方法如下:http ://wiki.apache.org/xmlgraphics-fop/HowTo/PHPJavaBridge
PostScript会很好!
许多 PostScript 打印机也能理解 PDF。
我Spreadsheet_Excel_Writer
在PHP中使用过,它已经足够好了。不是所见即所得,但它确实会生成 XSL 文件,我对此很满意。之后,您可以使用 OpenOffice 宏将文档转换为 PDF。它适用于命令行,ergo,它也适用于 PHP 脚本。
或者这里有一个更好的方法。
使用 OpenOffice 转换 Smarty 模板。Smarty 是一个很酷的 PHP 模板引擎,我为此推荐它。然后使用 PHP 和 Smarty 生成纯 HTML。最后,只需使用上述方法将生成的 HTML 转换为 PDF。
报告革命(tm)。
编辑 2009 年 6 月 6 日修改 了?啊没关系。
无论如何,这种方法可以在没有运行 X11 的无头服务器上工作。我已经从提到的链接中获取了脚本(除了我把它放在预先存在的集合“标准”而不是“DannysLibrary”中),然后我使用 PuTTY 从 Windows 机器运行了这个命令,并且 X 在远程机器上被关闭,并且没有设置 DISPLAY 变量,并且......好吧,无论如何,OOo 无法找到要连接的 X11。
$ openoffice.org -invisible -headless "macro:///Standard.Conversion.ConvertWordToPDF(`pwd`/logaritamska.doc)"
这很有效,我相信这对于需要从另一种格式转换为 PDF(包括从 HTML 生成可打印报告)的任何人来说都非常有用。通过编辑宏,您甚至可以让 OOo 直接从标准输入或临时服务 URL 读取,并输出到预定义的文件中。一旦你有基本的代码来扩展,链接上的脚本就很简单了。
概括:
编辑 2009 年 6 月 9 日
我试图以这种方式实现在线转换器。您应该让 PHP 在您创建宏的同一用户下运行。该用户显然不能是 www-data。我尝试使用 suphp,但由于某种原因,它没有正确更改用户(posix_getuid()
一直返回 33,即 www-data)。修复此问题后,我将对其进行编辑。
编辑 2009 年 6 月 26 日 猜猜我花了一段时间来报告。是的,这适用于 suphp。然而,我无法现场展示它,因为我拥有的唯一服务器运行的是一个相对关键的网络应用程序,它没有专业的安全审计。这意味着我们保护后端所依赖的一件事是运行前端的用户是一个非常非常没有特权的用户(例如 www-data)。不要问:-)
希望这对某人有所帮助:是的,使用 OO.o 转换为 PDF 非常现实。OO.o 中甚至还有一些远程调用支持,但我并不是为了写这篇文章而研究它的。
我在php中使用了eclpse:“BIRT Project”
http://www.eclipse.org/birt/phoenix/
您在 Eclipse 中设计您的报告。然后上传到你的服务器(它必须运行tomcat)我知道。然后您可以从您的 php 应用程序调用该报告,您可以通过查询字符串将参数发送到报告:
/myreport.birt?param=var¶m2=var2
到目前为止,我们有一个像这样工作的 4 年应用程序。大约有 100 份报告,而且效果非常好。
当然它是开源的。
祝你好运
如果您有服务器访问权限,您可能还想通过Apache FOP使用XSL 格式化对象。XSL-FO 基于 XML,支持多种输出格式,包括 PostScript 和 PDF
在我看来,它是最好的、详细且功能丰富的 PHP 报表设计器之一。
如果您设法在您的 php 环境中调用 Java 应用程序(这通常应该是可能的)JasperReports可能是您正在寻找的东西:
嗯..我在当前的项目中遇到了同样的问题,我最终使用水晶报告并使用用 c# 编写的 asp.net Web 服务调用报告。Web 服务并不复杂,您仍然可以使用水晶报表的所有功能。我不认为你会找到任何完全基于 php 的报表引擎,可以与水晶报表相提并论......我还没有找到一个......
大约一年前我遇到了同样的问题。在搜索了一个现有的解决方案后,我没有找到,所以我使用 Zend Framework 的 PDF 生成库编写了一个精简的水晶报告。我不得不大量调整他们的库以支持分组对象、重复部分和模板。它工作,但它真的很笨重,如果我不得不再做一次,我会找到一种方法将 php 连接到水晶报告,或者通过像 Gushiken 说的 Web 服务,或者通过调用命令行应用程序。CPAN 有一个到 CR 的 Perl 接口:Win32::OLE::CrystalRuntime::Application。
如果 PHP 解决方案在过去一年中发布,我怀疑它是否足够成熟,可以与 CR 相提并论。时间很昂贵。软件不行。
XSL-FO 是满足这一需求的合适工具,因为它非常适合可打印介质。XSL-FO 也是一个 W3C 推荐,带有 XSLT。我制作了一个使用 XSL-FO 作为报告中间语言的 php 工具,这个 XLS-FO 是将报告 XSLT 模板与您的 XML 数据合并(处理)的结果。
您可以使用 MS Word 自动创建模板,并按照用户手册中的说明导出。然后,您向报告引擎提供模板,并在运行时提供数据 XML。
同样在运行时,生成的 XSL-FO 报告呈现为:
a) 相同的 XSL-FO(如果您想调试或只想要 XSL-FO)
b) 完美的 PDF,(ApacheFOP 呈现 XSL-FO)
c) 带有 XSLFO2HTML 转换的 HTML。
这里有项目,它是一个 symfony 1.4 插件: https ://github.com/juanmf/sfPlugins/tree/master/reportPlugin
我打算将它与 sf. 不要犹豫,问什么。这是操作方法: https ://github.com/juanmf/sfPlugins/blob/master/reportPlugin/doc/HowToReport.pdf?raw=true
这篇文章也可能会给你一些帮助: https ://stackoverflow.com/questions/5519024/report-engine-solution-for-lamp-application/13042656
问候!
我使用过phpreports,我必须承认它对于基于 Web 的报告来说还不错,因为它支持页眉、页脚、组、小计等。
看看siwapp.org,它是基于 Symphony 框架的开源发票应用程序,它处于早期测试阶段,但非常有前途。