欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spire高效稳定的.NET组件

程序员文章站 2022-12-17 08:56:42
年末将至,又到了一年一度的收集发票时间,平时零零碎碎的花钱都是不在意开发票,现在好了,到处找发票来报销,简直头大, 东拼西凑,终于搞定了全部发票,大伙多余的发票,麻烦艾特我一下啊,不限日期,能开发票的都可以,谢谢啦。文章后有彩蛋~ 这么多的发票,一张一张打印,要浪费我多少时间,就想着合并这些PDF文 ......

  年末将至,又到了一年一度的收集发票时间,平时零零碎碎的花钱都是不在意开发票,现在好了,到处找发票来报销,简直头大,

                                                                    Spire高效稳定的.NET组件

东拼西凑,终于搞定了全部发票,大伙多余的发票,麻烦艾特我一下啊,不限日期,能开发票的都可以,谢谢啦。文章后有彩蛋~

Spire高效稳定的.NET组件

这么多的发票,一张一张打印,要浪费我多少时间,就想着合并这些pdf文件(发票)一起打印,节省时间。

还寻思这网上找一个软件来使使,都很(méi)委(līang)婉(xīn)的想收费,在线转pdf的还给我打水印,恰巧今天公司网速不行。

来吧,自己搞!程序猿没有什么不可能!

spire.pdf

  npoi、docx、epplus……这些开源且免费的优秀组件,大家应该是耳熟能详的,而spire是一款企业级的收费组件,spire.pdf for .net

是一个专业的pdf组件,用于在.net应用程序中创建,编写,编辑,处理和阅读pdf文件,功能十分丰富…………

提取关键词:收费、稳定、高效 

具体我不再过多的啰嗦了,详细我推荐看这篇《 高效而稳定的企业级.net office 组件spire(.net组件介绍之二)

合并pdf

  回到今天的问题,合并发票,合并pdf,然后一次性打印。其实吧,主要代码就两行:

1  var doc = pdfdocument.mergefiles(allfiles.toarray());
2  doc.save(datetime.now.tostring("yyyymmddhhmmss") + ".pdf", fileformat.pdf);

然后,你们输出之后会发现,很(méi)漂(līang)亮(xīn)的水印:

Spire高效稳定的.NET组件

“evaluation warning:the document was created with spire.pdf for .net”

简直玷污我心爱的发票!!!!

解决

  既然隐藏不了,那合并的第一页加入一个空页不就行了?!生成pdf后,然后从第二页开始打印或是删去第一页不就行了?!就这么干!

1             var first = new pdfdocument();
2             first.appendpage();  //加入一个空页
3             for (int idx = 0; idx < allfiles.count; idx++)
4             {
5                 var next = new pdfdocument(allfiles[idx]);
6                 first.appendpage(next); 
7             }
8             first.savetofile(datetime.now.tostring("yyyymmddhhmmss")+".pdf", fileformat.pdf);

Spire高效稳定的.NET组件

Spire高效稳定的.NET组件

Spire高效稳定的.NET组件

                                                                           Spire高效稳定的.NET组件

Spire高效稳定的.NET组件

需要的下载去用吧。