业务中,经常需要将office 文件上传并通过网页进行在线阅读,一种最普遍的方法就是转换office文件到pdf格式,以pdf文件方式进行在线预览。

但将office 文件转换为Pdf的方法很多,各有利弊。

方法一:利用office自带的COM类型库组件实现转换Pdf功能。只要安装了office的服务器上都可以调用,不需要额外的第三方组件,功能也更加丰富和强大,几乎可以不受限制的操作office所有类型文件。缺点是部署问题多,发布到客户服务器进行调试的话问题很多。禁忌:1,开发的时候调用,不同office版本的COM组件,比如Microsoft.Office.Interop.Word是v14,那ppt、excel等组件都要统一版本,不然问题很多;2,部署的服务器上只能安装一个版本的office,比如开发时调用的Office 2010,那部署的服务器就只能装 office 2010,建议不要混装各种版本来匹配组件型号,最终会导致哪个都不能用;3,常见的故障问题和解决方法附录在该节末尾。

(1)利用Microsoft.Office.Interop.Word实现word转换pdf.

首先安装office 2010或其他更高版本。

添加引用Microsoft.Office.Interop. Word:

C#代码中添加引用:

using System.Text;

using Microsoft.Office.Interop.Word;

using WdExportFormat = Microsoft.Office.Interop.Word.WdExportFormat;

创建WordToPdf方法:

/// <summary>

/// 把Word文件转换成pdf文件

/// </summary>

/// <param name="sourcePath">需要转换的文件路径和文件名称</param>

/// <param name="targetPath">转换完成后的文件的路径和文件名名称</param>

/// <returns>成功返回true,失败返回false</returns>

public static bool WordToPdf(string sourcePath, string targetPath)

{

bool result = false;

Microsoft.Office.Interop.Word.WdExportFormat wdExportFormatPDF = Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF;//转换格式1.wdExportFormatPDF转换成pdf格式 2.wdExportFormatXPS转换成xps格式

object missing = Type.Missing;

Microsoft.Office.Interop.Word.ApplicationClass applicationClass = null;

Document document = null;

try

{

applicationClass = new Microsoft.Office.Interop.Word.ApplicationClass();

object inputfileName = sourcePath;//需要转格式的文件路径

string outputFileName = targetPath;//转换完成后PDF或XPS文件的路径和文件名名称

WdExportFormat exportFormat = wdExportFormatPDF;//导出文件所使用的格式

bool openAfterExport = false;//转换完成后是否打开

WdExportOptimizeFor wdExportOptimizeForPrint = WdExportOptimizeFor.wdExportOptimizeForPrint;//导出方式1.wdExportOptimizeForPrint针对打印进行导出,质量较高,生成的文件大小较大。2.wdExportOptimizeForOnScreen 针对屏幕显示进行导出,质量较差,生成的文件大小较小。

WdExportRange wdExportAllDocument = WdExportRange.wdExportAllDocument;//导出全部内容(枚举)

int from = 0;//起始页码

int to = 0;//结束页码

WdExportItem wdExportDocumentContent = WdExportItem.wdExportDocumentContent;//指定导出过程中是否只包含文本或包含文本的标记.1.wdExportDocumentContent:导出文件没有标记,2.导出文件有标记

bool includeDocProps = true;//指定是否包含新导出的文件在文档属性

bool keepIRM = true;//

WdExportCreateBookmarks wdExportCreateWordBookmarks = WdExportCreateBookmarks.wdExportCreateWordBookmarks;//1.wdExportCreateNoBookmarks:不要在导出文件中创建书签,2.wdExportCreateHeadingBookmarks:标题和文本框导出的文件中创建一个书签,3.wdExportCreateWordBookmarks每个字的书签,其中包括除包含页眉和页脚中的所有书签导出的文件中创建一个书签。

bool docStructureTags = true;

bool bitmapMissingFonts = true;

bool UseISO19005_1 = false;//生成的文档是否符合 ISO 19005-1 (PDF/A)

document = applicationClass.Documents.Open(ref inputfileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

if (document != null)

{

document.ExportAsFixedFormat(outputFileName, exportFormat, openAfterExport, wdExportOptimizeForPrint, wdExportAllDocument, from, to, wdExportDocumentContent, includeDocProps, keepIRM, wdExportCreateWordBookmarks, docStructureTags, bitmapMissingFonts, UseISO19005_1, ref missing);

}

result = true;

}

catch

{

result = false;

}

finally

{

if (document != null)

{

document.Close(ref missing, ref missing, ref missing);

document = null;

}

if (applicationClass != null)

{

applicationClass.Quit(ref missing, ref missing, ref missing);

applicationClass = null;

}

}

return result;

}

调用该方法:

CommonCls.ConvertPdf.WordToPdf(sourcefilepath, targetfilepath);

(2)利用Microsoft.Office.Interop.PowerPoint实现ppt转换pdf.

首先安装office 2010或其他更高版本。

添加引用Microsoft.Office.Interop. PowerPoint:

(3)利用Microsoft.Office.Interop.*组件实现转换pdf的常见问题和解决方法。

未加载错误

引用错误

调试正常,发布到部署服务器时无法转换

方法二:利用Aspose类库将word,ppt文档转换为Pdf。这个方法不需要在执行转换任务的服务器上安装office软件,也不会引起各种各样office权限的奇怪问题;缺点是需要收费,同时与office的后台耦合功能上还有所不足。

(1)利用Aspose. Words.dll将本地word文档转化成pdf

将Aspose. Words.dll  拷贝到bin目录。

添加引用

创建WordToPdf方法:

public static bool WordToPdf(string sourcePath, string targetPath)

{

try

{

//读取doc文档

Document doc = new Document(sourcePath);

//保存为PDF文件,此处的SaveFormat支持很多种格式,如图片,epub,rtf 等等

doc.Save(targetPath, SaveFormat.Pdf);

return true;

}

catch

{

return false;

}

}

在项目中,将文件上传后进行调用:

CommonCls.ConvertToPDF.WordToPdf(sourcefilepath, targetfilepath);

(2)利用Aspose.Slides.dll将本地ppt文档转化成pdf

将Aspose.Slides.dll  拷贝到bin目录。

添加引用

C#代码中引用:

  • using System.IO;
  • using Aspose.Slides;

创建PptToPdf方法:

public static bool PptToPdf(string sourcePath, string targetPath)

{

try

{

Crack();//调用Crack方法实现Aspose.Slides软破解

//实例化ppt文件

Presentation pres = new Presentation(sourcePath);

//保存

pres.Save(targetPath, Aspose.Slides.Export.SaveFormat.Pdf);

return true;

}

catch

{

return false;

}

}

代码中的Crack()方法,是用来对Aspose.Slides进行破解。

调用该方法:

CommonCls.ConvertToPDF. PptToPdf (sourcefilepath, targetfilepath);

方法三:利用Spire类库实现office文件转换pdf.

(1)利用Microsoft.Office.Interop.Word实现word转换pdf.

待续....

资源截图:

下载地址:https://download.csdn.net/download/lanhai96/86744033

C# 将word/ppt文档转换为Pdf的三种方法相关推荐

  1. 如何将Microsoft Word文档转换为PDF

    PDFs are handy for distributing documents so that they're seen the same way by all parties. Typicall ...

  2. Java 将 Word 文档转换为 PDF 的完美工具

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:为什么魂斗罗只有 128 KB却可以实现那么长的剧情?个人原创+1博客:点击前往,查看更多 来源:https:/ ...

  3. windows/linux服务器上java使用openoffice将word文档转换为PDF(亲测可用)

    一. 前言 1. 开发过程中经常会使用java将office系列文档转换为PDF, 一般都使用微软提供的openoffice+jodconverter 实现转换文档. 2. openoffice既有w ...

  4. azw3转换为pdf_干货:如何Java 将 Word 文档转换为 PDF

    在日常工作中,PDF格式良好的视觉阅读性和稳定性使其使用越来越广泛.因此我们常会遇到需要将成型的Word文档转换为PDF格式的情况.本文就将通过使用Java程序来演示如何将Word文档转换成PDF格式 ...

  5. Java将Word文档转换为PDF的完美工具

    引用至:https://mp.weixin.qq.com/s/JIgo3f98HufGJx23mgtvag Java 将 Word 文档转换为 PDF 的完美工具 在日常工作中,PDF格式良好的视觉阅 ...

  6. word文档转换为PDF

    工作中时常遇到word文档转换为pdf的需求,poi提供了一套现成的方法: package com.zzp.springboot.utils;import fr.opensagres.poi.xwpf ...

  7. 【软件操作】Office将Word文档转换为PDF格式

    一.问题描述 PDF格式(Portable Document Format)相比于Word文档(.doc/.docx格式)体积更大,但具有更好的文档一致性(减少排版问题),修改更困难(不易被外界篡改) ...

  8. 三种方法将Word文档转换为PDF文件格式

    如何将Word文档转换为PDF文件格式呢?大家在传输文件时,很多人喜欢使用PDF文件格式,因为它非常稳定,不会出现格式混乱的问题.但有些人可能不知道如何进行转换,今天我将介绍三种转换方法,让我们一起来 ...

  9. 将Word文档转换为PDF时出现“PDFmaker文件遗失,要在修复模式下运行安装程序吗?”的提示

    鼠标右击将Word文档转换为PDF时出现"PDFmaker文件遗失,要在修复模式下运行安装程序吗?"的提示,运行完安装程序以后,问题还是没有解决,依旧有提示,这是什么原因,我电脑装 ...

  10. 将Word文档转换为PDF文件的步骤和技巧

    在日常工作和学习中,我们经常需要将Word文档转换为PDF文件.PDF文件的格式稳定.排版精美.易于共享等特点使其成为了许多场合下的首选文件格式.在本文中,我将为大家介绍将Word文档转换为PDF文件 ...

最新文章

  1. java 全局变量 内存不回收_Java的内存 - 内存回收
  2. 成为优秀高级程序员的10个要点(转)
  3. 网络表述学习经典论文——DeepWalk
  4. 高精度人脸表情识别 开源代码
  5. react实现路由跳转_react实现hash路由
  6. v4l2驱动框架_【干货分享】Xilinx Linux V4L2视频管道(Video Pipeline)驱动程序分析...
  7. 用牛顿法求方程的根的c语言编程,用牛顿迭代法和二分法求方程的根【C语言】...
  8. 百度地图 变黑问题 解决方法
  9. Java深入理解深拷贝和浅拷贝区别
  10. 定时关机软件里的锁定计算机,怎么让电脑定时关机设置大全
  11. 应届毕业生求职,注意事项
  12. java导出乱码_导出文件乱码问题处理(java)
  13. kaggle论文阅读
  14. 考研日语线上笔记(八):完型易混易考知识点梳理篇
  15. 50例源码Python scipy.stats.norm 模块,pdf()
  16. Qt容器:QList
  17. 重庆大学计算机学院最好老师,“一切都是最好的安排”——蒲俊杰老师喜获重庆大学“最受学生欢迎老师”称号...
  18. 简单的自动化测试模型(python+selenium)
  19. 开源世界里乱象横生,该如何规制?
  20. 宅公司 宅家里 养生锻炼必备的少林八段锦

热门文章

  1. oracle 建表引号,oracle 创建表加双引号作用
  2. 《创业时代》原型:为什么Talkbox、子弹短信都失败了?
  3. 爬取34万专栏文章:304篇10K+高赞文章汇总
  4. python对数据进行分类_按Python对数据进行分类
  5. mysql drop表明_MySQL DROP TABLE会完全删除表还是仅删除结构?
  6. 2020的考研总结和2021的规划
  7. linux根据关键字查询日志的方法
  8. 【中科院】分子生物学-朱玉贤第四版-笔记-第10讲 分子生物学操作技术
  9. 深圳医疗器械帮;一个军团的诞生
  10. win7怎么关闭配置计算机,Win7电脑怎么设置定时关机?