最近的项目中需要将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. Chrome和火狐插件让数以百万计用户隐私数据泄露

      https://tech.163.com/19/0721/12/EKK1PRAU00097U7R.html   网易科技讯7月21日消息,据国外媒体报道,流行浏览器诸如广告拦截等扩展功能,已经遭利 ...

  2. python __iter__ 迭代器

    1. 迭代器是什么? 迭代器是一个对象,是python非常强大的特性 根本上说, 迭代器就是有一个 next() 方法的对象, 而不是通过索引来计数. 当你或是一个循环机制(例如 for 语句)需要下 ...

  3. 009-Linux nohup

    一.基础概述 1./dev/null 可以将/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然 ...

  4. 修改root密码

    Linux 密码的修改,使用passwd 命令修改 命令如下图:sudo passwd root 即可修改成功

  5. REUSE_ALV_POPUP_TO_SELECT使用技巧

    可以实现弹出一个对话框,提供选择数据的功能…… 栗子1: CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT' TYPE-POOLS slis. DATA: selec ...

  6. OLE导出EXCEL 问题处理

    需求: 2.资产负债表.利润表导出优化,由于项目公司门店较多,需要增加批量导出功能.按纳税主体维度导出execl文件,输入了几个纳税主体,就生成几个execl文件. 实现: 用程序ZFIR0014XL ...

  7. Microsoft Visual Studio(VS)启动报安装过程中无法运行

    开机启动VS提示无法运行,很可能VS正在更新,可以等待几分钟更新完成,再次运行VS. 也可以把更新进程结束,进程名:VSIXAutoUpdate.exe

  8. jenkins:忘记密码怎么办

    方法一: 去掉密码登录配置 修改 JENKINS_HOME/users/user.conf user.conf 就是忘记密码对应的用户针对 yum install jenkins 安装的Jenkins ...

  9. 【数据库开发】windows下hiredis的编译(主要是包括一些异步编程的错误)

    果然,高端的程序员真心是鸟都不鸟windows的,Redis的客户端找了一圈愣是没有C++的windows版本 我要做个windows上的C++的服务器都没办法和redis交互 github上所有能试 ...

  10. Opencv官方例程简介

    opencv sample文件夹例程 No1. adaptiveskindetector.cpp 利用HSV空间的色调信息的皮肤检测,背景不能有太多与肤色相似的颜色.效果不是特别好. No2. bag ...