如何用LabVIEW生成PDF格式的报告

以前有发过一个姊妹篇(回复关键词“WORD”获取),讲的是如何通过LabVIEW读取WORD文档的内容。在文末留了一个引子,就是LabVIEW也可以完成WORD文档以及PDF格式文档的制作。PDF是一种非常复杂的格式,所以这里也是介绍一些工具来实现我们的目标。同样也还是来自于姊妹篇的那个故事,客户的某个生产测试软件生成的PDF格式报告,解决了读取的问题之后呢,就思考这是怎么生成的。在仔细查看软件的各个角落之后发现了这个关键词“itextsharp”似乎有关,通过一番搜索找到了源头——itextsharp确实一个专门处理PDF的开源库。有兴趣的可以进一步了解这个库。

itextsharp免费开源库,本文的主要工具。服务了我们千千万万的人,有必要简要介绍一下源头。目前这个开源库在两大托管平台都有发布,地址分别为:https://github.com/itext/itextsharp以及https://sourceforge.net/projects/itextsharp/,有兴趣的可以进去膜拜一下里面的大神。细节不介绍了,稍微说明一下这个工具的版权许可问题。itextsharp是完全免费的,在第四版之前是开源MPL与LGPL协议,通俗讲就是完全开源免费自由,无论你自己的项目是开源还是闭源。而在4.2版本之后,itextsharp依然是开源的,但是要求你自己的项目也必须开源,即AGPL协议。而不愿意开源的商业项目则必须购买版权,名字也变成itext(第五版)了,不再是itextsharp。从下图可以看到,我们使用的是4.1.6.0版本,应该是没有版权问题了。

即便是拿到这个开源库,要进一步整合到LabVIEW里面,也是非常繁琐的,有大量的参数要配置。所以这里要进一步介绍另一个基于LabVIEW下的工具包——Exaprom PDF。这是一家加拿大公司开发的工具包,就是基于我们前述的itextsharp的基础上再次开发而成。鉴于itextsharp是开源的,所以Exaprom PDF也是开源的,BSD协议。

首先下载工具包,下载与安装说明地址均为:https://decibel.ni.com/content/docs/DOC-10952。作者(Jean-Marc Simard,也是一位大神)就发布在NI的论坛上,而且看得出一直在维护,同时还在回答用户的一些疑问。下面的内容基本上是搬运工了。作者制作了两个版本,2013版的下载地址:https://forums.ni.com/ni/attachments/ni/3046/11150/4/Exaprom%20PDF2.0%20(LV2013).zip;2009版本的下载地址:https://forums.ni.com/ni/attachments/ni/3046/11150/6/Exaprom%20PDF2.0%20(LV2009).zip。下载压缩包后解压会得到一个文件夹与一个文件,如下图所示:一个是代码包,另外的.mnu的文件是菜单文件。

接着就是将它们分别放在指定的目录下:如下图所示C:\Program Files\National Instruments\LabVIEW Version\vi.lib\这里放置代码文件夹。

然后放置菜单文件,如下图所示:C:\Program Files\National Instruments\LabVIEW Version\menus\Categories\Programming\,顾名思义就知道具体位置了。

放置好后重启LabVIEW就可以看到函数面板已经加载了所有的PDF相关的函数。如下图所示:

看到这里是不是就安心很多了。作者完全是基于LabVIEW以及NI的风格来开发的工具包,会发现非常容易上手。另外,还可以发现这位大神在每一个函数的程序面板以及Help页面都有完整的版权申明信息——既有itextsharp的版权申明,也有作者自己的BSD版权申明。

最后,是不是感觉少了点什么?对,好像没有用户说明书?其实作者的每一个函数都有非常详细的帮助信息,同时还有一份详尽的说明文档。作者非常巧妙地把整个用户手册(User Manual)集成到一个VI中去了,没错就是下图中标注的这个函数,打开后直接运行就会生成一份长达43页的PDF文档就生成了,其中是图文并茂啊,而这个User Manual.vi同时就满含着生成这图文并茂的PDF文档的各种实例了。试想:一个通过实例生成了一份长达43页的图文并茂的PDF文档,那还有什么做不到的呢?如果实在还有更高的要求,或者发现bug,可以在文初作者发布的地方跟原作者互动,基本可以解决一般性的问题了。当然,随着技术的进步,PDF也是进一步的发展,但是看得出处于版权的考虑,作者是不会升级itestsharp的,在现有模式下也无法升级。

写到这里,也就结束了。可以说笔者除了介绍这款神器,很多地方谈到了版权问题。也是宣传一种版权意识,即便是免费开源软件,也是有协议要求的,比如署名,再次开源等等要求。所以,如果通过本文开发的软件,不求处处标注版权协议,至少在软件的版权页标注itestsharp以及Exaprom PDF的版权申明。再次说明,本文提到的工具包是可以用于闭源的商业用途的,无需付费,仅仅需保留开发者的版权信息即可。嗯,传播本文也请求保留出处——微信公众号:LabVIEW-Jobs :-) :-)

参考来源:

https://decibel.ni.com/content/docs/DOC-10952 (Exaprom ODF发布页)

https://itextpdf.com/ (itestsharp官网)

https://sourceforge.net/projects/itextsharp/ (itestsharp共享发布页)

------

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180622G1XY7R00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券