Zend PDF - 有没有一种很好的方法来实现 MVC 模式?

发布于 2024-10-01 13:33:59 字数 290 浏览 6 评论 0原文

给定一些用户数据。

根据控制器的不同,此数据应呈现为 PDFHTML 文件。

我真的很喜欢 Zend 的 .phtml 视图将 HTML 与非常基本的 PHP 结合起来的方式。

PDF 和/或 XLS 是否有类似的方法,允许没有强大编程背景的同事更改 PDF / XLS输出?

Given some user data.

Depending on the controller this data should be rendered either into a PDF or into a HTML file.

I really like the Zend way of the .phtml views combine HTML with very basic PHP.

Is there a similar approach for PDF and/or XLS that allows co-workers without strong programming background to change the PDF / XLS output?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

吃颗糖壮壮胆 2024-10-08 13:33:59

嗯,对于没有强大编程背景的人来说并不适合。

基本上,渲染 PDF 或 Excel 视图与渲染 HTML 视图相同,因此您可以将生成代码放入 .phtml 文件中,生成适当的输出并使用适当的内容类型为其提供服务。这只是模型中数据的不同表示形式。 您可以利用 ZF 的上下文切换助手来实现此目的。

但是,HTML 是标记,而 PHP 被设计为嵌入其中,所以这是小菜一碟 - 如果您了解适当的前端技术,例如 HTML、CSS 和 JavaScript。

对于 Excel,您可以使用 Microsoft 的 SpreadsheetML 并以相同的方式将 PHP 嵌入其中。不过,这需要同事对该标记语言和 XML 有一定的了解。

我不知道 PDF 文件有任何标记,因此必须完全通过 API(可能是 Zend_PDF)生成。嗯,您也许可以发明一些东西来定义哪些数据在 XML 中的位置,但这需要一些思考。

编辑,因为它被标记为 Zend Framework,您可能还需要考虑使用 LiveDocX 服务,它使用基于模板的方法,可以创建 PDF 和 Excel。

Well, not really for people without a strong programming background.

Basically, rendering a PDF or an Excel view is the same as rendering an HTML View, so you could put the generating code into .phtml files, generate the appropriate output and serve it with the appropriate content-type. It's just a different representation of the data in the Model then. You can utilize ZF's context switch helper for this.

But, HTML is markup and PHP was designed to be embedded in it, so this is cake to do - if you know the appropriate frontend technolgies, like HTML, CSS and JavaScript.

With Excel, you could use the Microsoft's SpreadsheetML and embed PHP into it the same way. This requires the co-worker to have some knowledge of that markup language and XML in general though.

I am not aware of any markup for PDF files, so this has to be generated through an API (likely Zend_PDF) completely. Well, you could probably invent something to define which data goes where in XML, but that would take some thought.

Edit since this is tagged Zend Framework, you might also want to consider using the LiveDocX service, which uses a template based approach and can create PDF and Excel.

恬淡成诗 2024-10-08 13:33:59

使用 WKHTMLtoPDF 从 HTML 渲染视图创建 PDF。

Use WKHTMLtoPDF to create a PDF from the HTML rendered view.

上课铃就是安魂曲 2024-10-08 13:33:59

HTML 和 PDF 是不同的星球。制作支持两种媒体类型及其各自优势的输出库几乎是不可能的。

我能想到的最好的解决方案是 pandoc, http://johnmacfarlane.net/pandoc/

它不是 MVC它是自己的,但用作库可能会满足您的需求。

问候
//t

HTML and PDF are different planets. Making output libraries that supports both media-types and their respective strengths is almost undoable.

The best solution I can think of is pandoc, http://johnmacfarlane.net/pandoc/

It's not a MVC of it's own, but used as library it may suit your needs.

regards
//t

硪扪都還晓 2024-10-08 13:33:59

在 MVC 世界中,PDF 只是另一种视图。因此,如果您有 /controller/action/view.phtml 那么理论上您应该能够拥有像 /controller/action/view.pdf 这样的 URL。

这与使用 API(例如 Twitter 的 API)选择输出格式类似。点击 http://api.twitter.com/version/statuses/public_timeline.json 将返回 JSON 格式的结果;点击 http://api.twitter.com/version/statuses/public_timeline.xml 在 XML 中;等等。

In an MVC world, the PDF would just be another view. So if you had /controller/action/view.phtml then you should theoretically be able to have a URL like /controller/action/view.pdf.

It's similar to how you can choose your output format with an API such as, say Twitter's. Hitting http://api.twitter.com/version/statuses/public_timeline.json will return the result in JSON; hitting http://api.twitter.com/version/statuses/public_timeline.xml in XML; and so on.

意犹 2024-10-08 13:33:59

一些 PDF 库还包括在 PDF 内容中导入/显示 HTML 的功能,其中一些库具有处理各种格式和不支持的标签的高级属性。我使用过的大多数都对您需要遵守的 DTD 有严格的规定。

Some of the PDF libraries also include the ability to import/display HTML in the PDF contents, several with advanced properties for handling various formats and unsupported tags. Most that I've used have had strict stipulations about which DTD you need to adhere to.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文