最近的项目中需要将Word转换为PDF文件,找了很多方法和组件,最后找到了一些方法,和大家分享。

一、使用微软官方自带转换方法

好处是写法方便,官方支持,缺点是需要在服务器上安装office,而且要配置COM组件的调用,相当麻烦;感兴趣的可以查一查并配置,代码如下;

        public void WordToPDF()
{
string pathAndName = "D:/test/test.docx";
Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document document = null;
try
{
string wordname = pathAndName + ".docx";
application.Visible = false;
document = application.Documents.Open(wordname);
string pdfPath = pathAndName.Replace(".docx", ".pdf"); //pdf存放位置
if (!System.IO.File.Exists(pdfPath)) //存在PDF,不需要继续转换
{
document.ExportAsFixedFormat(pdfPath,
Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw new Exception("word转换失败");
}
finally
{
document.Close();
}
}

二、使用免费的Spire.Doc组件来转换

Spire.Doc有免费的版本和收费的版本,免费的版本可以转换3页的word到pdf,收费的没有使用过;但是使用转换后效果不是很好,和word文档有一些出入,比如word有有下划线没写入内容,转换后下划线不见了等问题,遂放弃了该组件;

代码如下:

        public void wordToPdfWithSpireDoc(string filePath,string wordName,string pdfName)
{
try
{
Document doc = new Document();
doc.LoadFromFile(filePath+wordName);
doc.SaveToFile(filePath + pdfName, FileFormat.PDF);
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
} }

三、使用Aspose.Words组件

Aspose.Words是一个商业组件,我们可以使用破解版等;有点转换方便快捷,而且转换效果与word相比,几乎无差别;

   if (File.Exists(exportPath + wordName))
{
Document doc = new Document(exportPath + wordName);
doc.Save(exportPath + pdfName, Aspose.Words.SaveFormat.Pdf);
}

四、总结

word模板导出方法,找到了开源的Xceed.docx,用起来还不错;

Excel模板导出方法,找到了开源的ExcelReport,git地址 https://github.com/hanzhaoxin/ExcelReport

还有wps转换word等方法,就不一一列举,在网上也找了很久,组件很多,合适且免费的相对较少,大家有好的方法和组件也可以相互交流。

Word文档转PDF方法探索的更多相关文章

  1. word文档转pdf,支持.doc和.docx,另附抽取pdf指定页数的方法

    公司有个需求,需要将word转成pdf并且抽取首页用以展示,word文档有需要兼容.doc和.docx两种文档格式.其中.docx通过poi直接就可以将word转成pdf,.doc则无法这样实现,上网 ...

  2. 在linux中使用php将word文档转为pdf

    使用本教程需要在linux中安装openoffice,改页面中有详细的安装与使用教程(http://www.cnblogs.com/sustudy/p/3999628.html). 既然,你看了该教程 ...

  3. 微信公众号怎么添加附件?比如word文档,pdf文件等

    微信公众号怎么添加附件?比如word文档,pdf文件等   我们都知道创建一个微信公众号,在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序“微附件”进行在公众 ...

  4. Python处理PDF和Word文档常用的方法

    Python处理PDF和Word文档的模块是PyPDF2,使用之前需要先导入. 打开一个PDF文档的操作顺序是:用open()函数打开文件并用一个变量来接收,然后把变量给传递给PdfFileReade ...

  5. Python处理PDF和Word文档常用的方法(二)

    Python处理word时,需要安装和导入python-docx模块. 安装命令:pip install python-docx 导入命令:import docx 编码编写顺序:用docx.Docum ...

  6. C#中5步完成word文档打印的方法

    在日常工作中,我们可能常常需要打印各种文件资料,比如word文档.对于编程员,应用程序中文档的打印是一项非常重要的功能,也一直是一个非常复杂的工作.特别是提到Web打印,这的确会很棘手.一般如果要想选 ...

  7. 批量转换word文档到pdf文件

    最近在整理每周的工作记录.因为每周的工作记录大都是单独的word文件,有时候忘记了也不容易找出来,一个个打开查找太费劲,因此想着把这些文件通过word2016的另存为功能转换为pdf,然后永Acrob ...

  8. word文档自动生成方法

    创建word文档需要几个接口类,常用application,document,documents,selection等.但word的功能复杂,要认识到每一个类的功能是不可能的.常用的方法是在word的 ...

  9. Java环境中,word文档转PDF直接打开浏览而非下载

    在平台上,需要把文档直接浏览而非下载,实现方法是先把文档转为PDF文件, 但在linux系统中确实汉字字库,所以转换失败,以下是解决方法 后面正式服务器也要添加字库,不然会转换出乱码文件,处理步骤如下 ...

随机推荐

  1. JPG:文件格式系列科普之.JPEG/.JPG(转)

    当我们在互联网上浏览内容时,总会看到各种各样的图片,比如在你刷IT之家时,所看到的绝大部分图片都是JPG格式的,这种图片格式之所以在互联网上广受欢迎,是因为相比于PNG.GIF格式,它的体积相对较小, ...

  2. ubuntu系统调整时区和时间

    date: 2019-05-30  10:14:23 author:headsen  chen 个人原创博客,转录需要注明作者和出处. 1,安装ntpdate,同步标准时间 root@hk-confl ...

  3. Windows 操作系统 端口转发

    在Windows 下可以使用netsh interface portproxy 命令实现端口转发功能. 例:netsh interface portproxy add v4tov4 listenpor ...

  4. 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_12-课程预览功能开发-需求分析

    5 课程预览功能开发 5.1 需求分析 课程预览功能将使用cms系统提供的页面预览功能,业务流程如下: 1.用户进入课程管理页面,点击课程预览,请求到课程管理服务 2.课程管理服务远程调用cms添加页 ...

  5. Div 居中对齐(水平、垂直)

    一:水平居中对齐 ***********************************************************************************  示例图 代码 ...

  6. 基于pythonselect.select模块通信的实例讲解

    基于python select.select模块通信的实例讲解 要理解select.select模块其实主要就是要理解它的参数, 以及其三个返回值. select()方法接收并监控3个通信列表, 第一 ...

  7. centos7安装配置gitlab详细教程

    一. 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问. 1.安装ss ...

  8. python学习笔记-电子书

    程序输入和raw_inoput() 内建函数 字符解释 f% :对应小数 >>> print "%s is number %d" % ("python& ...

  9. query解决touchmove时屏蔽touchend

    var dragging = false; $("li").on("touchmove",function(){ dragging = true; }); $( ...

  10. 【Leetcode_easy】628. Maximum Product of Three Numbers

    problem 628. Maximum Product of Three Numbers 题意:三个数乘积的最大值: solution1: 如果全是负数,三个负数相乘还是负数,为了让负数最大,那么其 ...