C# 合并多种格式文件为PDF
文档合并是一种高效文档处理方式。如果能够有一个方法能将多种不同类型的文档合并成一种文档格式,那么在文档存储管理上将为我们提供极大的便利。因此,本篇文章介绍了一种如何使用免费组件Free Spire.Office for .NET来实现将多种各式的文档合并为PDF的方法。本方法中可合并的文档格式可以是doc、docx、xls、xlsx、pdf等。下面将进行详细阐述。
使用方法:安装Free Spire.Office for .NET后,添加引用spire.doc.dll, spire.xls.dll, spire.pdf.dll三个文件,如下图所示:

添加以后,在命名空间添加如下using 指令:
using Spire.Doc;
using Spire.Xls;
using Spire.Pdf;
using System.IO;
文档合并前:

主要代码:
//声明PdfDocument对象数组
PdfDocument[] documents = new PdfDocument[];
using (MemoryStream ms1 = new MemoryStream())
{
//加载doc文档
Document doc = new Document(@"C:\Users\Administrator\Desktop\sample.doc", Spire.Doc.FileFormat.Doc);
//转换PDF,并以流的形式保存
doc.SaveToStream(ms1, Spire.Doc.FileFormat.PDF);
//加载PDF流文件为PdfDocument对象数组的第一个元素
documents[] = new PdfDocument(ms1);
}
using (MemoryStream ms2 = new MemoryStream())
{
//加载docx文档
Document docx = new Document(@"C:\Users\Administrator\Desktop\test.docx", Spire.Doc.FileFormat.Docx2010); //转换PDF,并以流的形式保存
docx.SaveToStream(ms2, Spire.Doc.FileFormat.PDF);
//加载PDF流文件为PdfDocument对象数组的第二个元素
documents[] = new PdfDocument(ms2);
} using (MemoryStream ms3 = new MemoryStream())
{
//加载xlsx文档
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\Sample.xlsx", ExcelVersion.Version97to2003);
//转换PDF,并以流的形式保存
workbook.SaveToStream(ms3, Spire.Xls.FileFormat.PDF);
//加载PDF流文件为PdfDocument对象数组的第三个元素
documents[] = new PdfDocument(ms3);
} //加载pdf文档,作为PdfDocument对象数组的第四个元素
documents[] = new PdfDocument(@"C:\Users\Administrator\Desktop\sample.pdf");
//将前三个文档合并到第四个文档,并另存为新的PDF文档
for (int i = ; i > -; i--)
{
documents[].AppendPage(documents[i]);
} documents[].SaveToFile("Result.pdf");
完成代码后,调试运行该项目,生成文件。
合并效果展示:

以上全部内容为合并不同格式文件为PDF文件的方法,如果想合并多个单一格式的PDF文档为一个文件,可参见这篇文章:http://www.cnblogs.com/Yesi/p/5604166.html 。
如果喜欢本文,欢迎转载(转载请注明出处)
感谢浏览!
C# 合并多种格式文件为PDF的更多相关文章
- java 调用OpenOffice将word格式文件转换为pdf格式
一:环境搭建 OpenOffice 下载地址http://www.openoffice.org/ JodConverter 下载地址http://sourceforge.net/projects/jo ...
- C# Word转为多种格式文件(Word转XPS/SVG/EMF/EPUB/TIFF)
一款有着强大的文档转换功能的工具,无论何时何地都会是现代办公环境极为需要的.在本篇文章中,将继续介绍关于Word文档的转换功能(Word转XPS/SVG/EMF/EPUB/TIFF)希望方法中的代码能 ...
- Servlet | 访问不同格式文件(PDF、doc)
核心代码 //设置响应内容类型为PDF类型 response.setContentType("application/pdf"); request.getRequestDispat ...
- Magicodes.IE在.NET Core中通过请求头导出多种格式文件
前言 在2.2里程碑中我们增加了一些新的功能,正如标题所写通过请求头进行导出我们不同格式的文件.下面我们来看一下如何使用.通过这种方式无论是对我们的数据多用途,还是说对我们的数据校验都做到了轻松易配. ...
- Windows删除文件夹下的指定格式文件(递归删除)
问题描述: 今天遇到一个需求,需要对文件夹进行文件筛选.目录结构较为复杂(目录较多,层次较深),数据量较大(总共60GB左右). 鉴于上述情况,直接排除了人工处理方式(否则小伙伴们会打死我的). 解决 ...
- WAV格式文件无损合并&帧头数据体解析(python)(原创)
一,百度百科 WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频 ...
- 导出文本、表格、图像到PDF格式文件中(学习整理)
1.测试例子: 需要导入的外部jar包: 相关API http://www.coderanch.com/how-to/javadoc/itext-2.1.7/com/lowagie/text/pack ...
- winform利用itextsharp.dll实现图片文件转换PDF格式文件
1.利用itextsharp.dll实现单个图片文件转换为PDF格式文件, 可以使用以下类: void ConvertJPG2PDF(string jpgfile, string pdf) { var ...
- asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台
分享: 腾讯微博 新浪微博 搜狐微博 网易微博 腾讯朋友 百度贴吧 豆瓣 QQ好友 人人网 作者:王春天 原文地址:http://www.cnblogs.com/spring_ ...
随机推荐
- Dynamics CRM2011 MspInstallAction failed when installing an Update Rollup
今天在给客户做环境迁移,安装包完成后按惯例打补丁,但在打补丁的时候却报错了,错误如下 最开始怀疑第一个打6是不是不对,毕竟N久没碰2011了忘的差不多了,后来下了个rollup1居然也打不上,根据这个 ...
- Swift中实现Observable机制
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51917539 ...
- UNIX网络编程——fcntl函数
fcntl函数提供了与网络编程相关的如下特性: 非阻塞式I/O. 通过使用F_SETFL命令设置O_NONBLOCK文件状态标志,我们可以把一个套接字设置为非阻塞型. 信号驱动式I/O. 通过使用F ...
- Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(三)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 下面看一下CatSprite中最复杂的moveToward方法, ...
- Guava 教程2-深入探索 Google Guava 库
原文出处: oschina 在这个系列的第一部分里,我简单的介绍了非常优秀的Google collections和Guava类库,并简要的解释了作为Java程序员,如果使用Guava库来减少项目中大量 ...
- git的撤销动作
有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了.想要撤消刚才的提交操作,可以使用--amend 选项重新提交: $ git commit --amend -m"修改 提交 ...
- 【leetcode77】Single Number
一题目描述: 给定一个数组,只有一个数字出现一次,其余都是两次,判断那个数字 思路: 不断取出数据进行异或,最后一个数字,因为相同的数字会抵消 代码: public class Solution { ...
- Universal-Image-Loader完全解析--从源代码分析Universal-Image-Loader中的线程池
一般来讲一个网络访问就需要App创建一个线程来执行,但是这也导致了当网络访问比较多的情况下,线程的数目可能积聚增多,虽然Android系统理论上说可以创建无数个线程,但是某一时间段,线程数的急剧增加可 ...
- 开源数字媒体资产管理系统:Razuna
Razuna以一个使用Java语言编写的开源的数字媒体资产管理(Digital Asset Management)系统.功能很强大,可以用于管理各种格式的数字媒体资源. Razuna在本机的安装配置还 ...
- PorterDuffXferMode不正确的真正原因PorterDuffXferMode深入试验)
菜鸡wing遇敌PorterDuffXferMode,不料过于轻敌,应战吃力.随后与其大战三天三夜,三百余回合不分胜负.幸得 @咪咪控 相助,侥幸获胜. 关键字:PorterDuffXferMode ...