Qt数据库应用3-数据打印到pdf

Qt数据库应用3-数据打印到pdf,第1张

自从数据可以导出到xls,又有客户提出了不同的需求,比如既然可以将数据导出到xls,那是否可以导出到pdf文件呢?因为xls打开以后用户可以修改数据造假之类的,而pdf默认是不可编辑的,除非借助专业的工具,所以如果想要限定用户导出数据不能被更改,那导出pdf是最佳选择。写程序往往都是这样,一步步慢慢增加,随着用户需求的增加,程序量也越来越多,轮子组件也越来越多。往往客户提需求的时候,一定要认真聆听,尤其是一线用户,实际使用的用户,尽管有些不合理的需求,但是能满足就尽量满足,毕竟客户就是上帝。

在Qt中要导出到pdf必须要用到qprinter类,相当于这些数据是打印到pdf的,所以确切点是叫打印到pdf文件,而不是导出数据到pdf,格式这块由于采用的是打印,所以需要用html嵌套table表格的形式来打印,支持的格式就有限了,一般可以设置字体大小、颜色、边框、对齐等,尽管是html,但是也是支持有限的html格式,这点要特别注意。现在的qt版本貌似单独将pdf提炼出来成了独立的模块,功能更强大。

结构体支持的参数:

【C++库】

PDF类库 PoDoFo

http://podofo.sourceforge.net/

PoDoFo 是一个用来 *** 作 PDF 文件格式的 C++ 类库。它还包含一些小工具用来解析、修改和创建 PDF 文档

Xpdf

http://www.foolabs.com/xpdf/download.html

Xpdf是一个开放源代码的PDF档案浏览器,Xpdf 可解码LZW压缩格式并阅读加密的PDF文件。

PDF生成工具 Poppler

http://poppler.freedesktop.org/

Poppler 是一个用来生成 PDF 的C++类库,从xpdf 继承而来。它使用了很多先进的类库例如 freetype 和 cairois 来达到更好的输出效果,同时也提供了一组命令行工具包。

JagPDF

http://www.jagpdf.com/

JagPDF 提供给 C/C++ 和 Python 编程语言用来生成 PDF 文档的库。

libHaru

http://libharu.org/wiki/Downloads

开源的PDF库

CLibPDF

http://hpux.connect.org.uk/hppd/hpux/Shells/ClibPDF-2.02/

ClibPDF是C函数库,可以直接生成PDF文件, 不需要Adobe Acrobat等工具支持.

------------------------------------------------------------------------

【JAVA库】

PDF *** 作类库 iText

http://www.lowagie.com/iText/

iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。

PDFBox

http://www.pdfbox.org/

非常强悍的PDF生成和解析Java类库

jpedal

http://www.jpedal.org/

jpedal是开源纯Java的PDF文档解析库,可以用来读取PDF文档中的文字、图形。

JasperReports

http://jasperforge.org/plugins/project/project_home.php?group_id=102

JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports 支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发者最常用的报表工具。

Fourfive

http://sourceforge.net/projects/fourfive

Fourfive是一个领先的开源Web报表解决方案,使用XML作为它的配置文件。支持集群、负载平衡、动态发布、PDF, Excel, LDAP,图表、过滤器、排序、布局定制、门户、JasperReports、Velocity模板、兼容Internet Explorer, Netscape, Mozilla, Opera。

FOP

http://xmlgraphics.apache.org/fop/

FOP是由James Tauber发起的一个开源项目,原先的版本是利用xsl-fo将xml文件转换成pdf文件。但最新的版本它可以将xml文件转换成pdf,mif,pcl,txt等多种格式以及直接输出到打印机,并且支持使用SVG描述图形。

JFreeReport

http://sourceforge.net/projects/jfreereport/

JFreeReport是一个用来生成报表的Java类库。它为Java应用程序提供一个灵活的打印功能并支持输出到打印机和PDF, Excel, HTML和XHTML, PlainText, XML和CSV文件中。

YaHP

http://www.allcolor.org/YaHPConverter/

YaHP是一个能够把html文档转换成pdf文档的Java开源包。

PDFjet

http://pdfjet.com/os/edition.html

PDFjet是一个用于动态生成PDF文档的Java类库。支持绘制点、线、方框、圆、贝塞尔曲线(Bezier Curves) 、多边形、星形、复杂路径和形状。支持unicode,文本间距调整,嵌入超链接等。它同时有Java和.NET两个版本。

vPDF

http://sourceforge.net/projects/vpdf/

一个将RTF文档转成PDF文档的工具

【.NET组件】

--------------------------------------------------

iTextSharp

http://itextsharp.sourceforge.net/

iTextSharp 是用来生成 PDF 文档的 C# 组件

PDFsharp

http://www.pdfsharp.com/

PDFsharp is a C# library that easily creates PDF documents on the fly. The same GDI+ like drawing routines can be used to create PDF documents, draw on the screen, or send output to any printer. PDFsharp can also modify, merge, and split existing PDF files or incorporate pages from existing PDF files into new PDF documents.

Report.NET

http://report.sourceforge.net/

Report.NET 是一个功能强大且易用的用来生成 PDF 文档的 C# 组件

---------------------------------------------------------------------

【PHP】

Php Pdf Factory

http://sourceforge.net/projects/pdf-factory/

一个PHP的PDF *** 作库。

TCPDF

http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf

TCPDF是一个用于快速生成PDF文件的PHP5函数包。TCPDF基于FPDF进行扩展和改进。支持UTF-8,Unicode,HTML和XHTML。

HTML2PDF

http://html2fpdf.sourceforge.net/

HTML2PDF能够把一个HTML文本转换成一个打印机友好的PDF文件。这个PHP脚本构建在FPDFPHP脚本之上。

cPdfWriter

http://www.palos.ro/index.php?page=opensource_active

cPdfWriter是一个能够输出PDF文档的PHP5 class。基于TCPDF,FPDF和其它相关脚本。

FPDF

http://www.fpdf.org/

FPDF这个PHP Class允许你采用纯PHP(更确切地说就是不需要使用PDFlib)来生成PDF文件。它所具有的特点包括:可选择的unit大小,页面格式和页边 距;页眉和页脚管理;自动分页;自动换行与文本自动对齐;支持JPEG与PNG图片格式;支持着色和文件超链接;支持TrueType,Type1与 encoding;支持页面压缩。...

------------------------------------------------------------------------

【Python和Ruby】

Prawn

http://prawn.majesticseacreature.com/

Prawn: 用Ruby生成PDF更简捷

ReportLab

http://www.reportlab.org/

Reportlab是用python开发的生成pdf的工具包,它是一个开源软件。

PDF生成工具 pyPdf

PyPDF这是一个用于构建PDF的纯Python工具包

写入PDF? 可以,不过需要下载 *** 作 PDF 的JAR包! *** 作起来不是太麻烦,不过就是生成的时间比较长。。。

flex 是 flash的一种延伸,flash 对于网站加载来说本来就比较慢,比较的消耗资源,生成PDF 可想而知!

其次 flex 发布到jobss tomcat 等服务器中时,你的 flex 是编译成flash,还是直接将xml放入容器中让其自动生成flash呢? 如果是的话,那反应就更慢了。。。

再后者,flex 虽然说是 flash 只要客户端支持flash就能看见 你的网站,但flex 需要在jobss tomcat 等容器中配置的,有免费的有收费的,它们的配置方法都不一样的。。。

好了就说到这里,虽然有点废话,并且与主题无关,但希望对LZ有帮助!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9859736.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存