当前位置:  开发笔记 > 编程语言 > 正文

是否有比HTML更好的布局语言进行打印?

如何解决《是否有比HTML更好的布局语言进行打印?》经验,为你挑选了3个好方法。

我正在使用Python和Qt 4.4,我必须打印一些页面.最初我以为我会用CSS和CSS来生成这些页面.但HTML有一些局限性.

现在的问题是:有什么比HTML好,但只是(或几乎)易于使用?此外,它应该是GPL兼容的.

编辑:

kdgregory和Mark G:最明显的限制是我无法指定打印机边距.还有一个问题:如何添加页码?

Jeremy French:我必须打印的一件事是一份列出了所有订购的产品,这些产品可以分布在几页上.



1> max..:

我一直在用Python的打印(或PDF)输出打架8年了,到目前为止,我遇到了以下方法(按个人喜好排序):

通过pyJasper(由我编写)或JasperServer使用JasperReports.您可以使用WYSIWYG设计工具iReport来定义布局.您的Python代码将通过HTTP与基于Java的Jasper引擎联系,并使其呈现为PDF(pyJasper处理).我们每天使用它几千页.

使用纯文本输出.你不能更快.我们每天使用它几百页.

使用XSLT-FO.您还必须调用基于Java的渲染引擎,如FOB.可能会导致性能问题,但可以通过长时间运行的Java服务器进程来缓解 - 与Jasper相同.我们每天使用它几百页,但写XSLT-FO文件让我头疼.不用于新代码.

生成LaTeX源并使用latex软件包呈现为PDF.让LaTeX看起来像喜欢是非常困难的.但只要你使用提供的LaTeX款式,你就可以了.我的店里没有用于生产.

使用ReportLab Toolkit生成PDF .有点低水平.更低级别:FPDF.我们每天使用FPDF-Ruby几百页.花了很多时间来获得我们想要的布局.

直接生成Postscript.奇怪但你几乎无法在速度和控制方面获得更多.我们用它来生成每天有几十万个Jpegs的联系表.需要摆弄,但很有趣.

使用troff/groff生成Postscript/PDF.非常低级别的bute很好做简单,高容量的东西.从未在生产中使用它.

对于订单,发票等我强烈推荐JasperReports.使用可视化编辑器定义布局的能力可以节省大量时间.



2> U62..:

有LaTeX.不确定是否属于"像html一样易于使用"的类别,但并不难.



3> nosklo..:

通过打印你的意思是打印机?如果是这样,请检查ReportLab的PDF工具.

from reportlab.pdfgen import canvas
from reportlab.lib.units import cm
c = canvas.Canvas("hello.pdf")
c.drawString(9*cm, 22*cm, "Hello World!")
c.showPage()
c.save()


ReportLabs还有一个布局引擎(Platypus)
推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有