年末将至,又到了一年一度的收集发票时间,平时零零碎碎的花钱都是不在意开发票,现在好了,到处找发票来报销,简直头大,
东拼西凑,终于搞定了全部发票,大伙多余的发票,麻烦艾特我一下啊,不限日期,能开发票的都可以,谢谢啦。文章后有彩蛋~
这么多的发票,一张一张打印,要浪费我多少时间,就想着合并这些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)的水印:
“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);
需要的下载去用吧。