常用Office 2007文件格式转换为xps和pdf代码整理
来源:互联网 发布:单片机红外发射电路 编辑:程序博客网 时间:2024/04/27 18:47
转换功能是通过调用安装了转换XPS和PDF的AddIn的Office2007对象模型完成的. 代码支持Office 2007支持的一切文件格式:
Office 2007组件
扩展名
Word
DOC, DOCX, DOCM, DOTX, DOTM, DOT, TXT, RTP, RTF
Excel
XLS, XLSX, XLSM, XML
PowerPoint
PPT, PPTX, PPTM, POTX, PPSX, PPSM, POTM
添加对三个组件的引用:
这里使用一个枚举类型来来决定生成文件的类型,包括:
其实可以使用个方法来实现这个功能,这里Word和Excel我使用了ExportAsFixedFormat,PowerPoint使用了SaveAs,对于Word和PowerPoint效果是一样的。只是SaveAs支持的格式更多, 但我发现似乎Excel不支持SaveAs.
Word转换代码:
private bool Convert(string sourcePath, string targetPath, Word.WdExportFormat exportFormat) { bool result; object paramMissing = Type.Missing; Word.ApplicationClass wordApplication = new Word.ApplicationClass(); Word.Document wordDocument = null; try { object paramSourceDocPath = sourcePath; string paramExportFilePath = targetPath; Word.WdExportFormat paramExportFormat = exportFormat; bool paramOpenAfterExport = false; Word.WdExportOptimizeFor paramExportOptimizeFor = Word.WdExportOptimizeFor.wdExportOptimizeForPrint; Word.WdExportRange paramExportRange = Word.WdExportRange.wdExportAllDocument; int paramStartPage = 0; int paramEndPage = 0; Word.WdExportItem paramExportItem = Word.WdExportItem.wdExportDocumentContent; bool paramIncludeDocProps = true; bool paramKeepIRM = true; Word.WdExportCreateBookmarks paramCreateBookmarks = Word.WdExportCreateBookmarks.wdExportCreateWordBookmarks; bool paramDocStructureTags = true; bool paramBitmapMissingFonts = true; bool paramUseISO19005_1 = false; wordDocument = wordApplication.Documents.Open( ref paramSourceDocPath, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing, ref paramMissing); if (wordDocument != null) wordDocument.ExportAsFixedFormat(paramExportFilePath, paramExportFormat, paramOpenAfterExport, paramExportOptimizeFor, paramExportRange, paramStartPage, paramEndPage, paramExportItem, paramIncludeDocProps, paramKeepIRM, paramCreateBookmarks, paramDocStructureTags, paramBitmapMissingFonts, paramUseISO19005_1, ref paramMissing); result = true; } finally { if (wordDocument != null) { wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing); wordDocument = null; } if (wordApplication != null) { wordApplication.Quit(ref paramMissing, ref paramMissing, ref paramMissing); wordApplication = null; } GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); } return result; }
Excel转换代码:
private bool Convert(string sourcePath, string targetPath, XlFixedFormatType targetType) { bool result; object missing = Type.Missing; ApplicationClass application = null; Workbook workBook = null; try { application = new ApplicationClass(); object target = targetPath; object type = targetType; workBook = application.Workbooks.Open(sourcePath, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); workBook.ExportAsFixedFormat(targetType, target, XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing); result = true; } catch { result = false; } finally { if (workBook != null) { workBook.Close(true, missing, missing); workBook = null; } if (application != null) { application.Quit(); application = null; } GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); } return result; }
PowerPoint转换代码:
感谢同事Hong的协助,把这部分功能实现,现在share给大家,希望为需要的朋友节省时间.private bool Convert(string sourcePath, string targetPath, XlFixedFormatType targetType)
{
bool result;
object missing = Type.Missing;
ApplicationClass application = null;
Workbook workBook = null;
try
{
application = new ApplicationClass();
object target = targetPath;
object type = targetType;
workBook = application.Workbooks.Open(sourcePath, missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing, missing, missing, missing, missing);
workBook.ExportAsFixedFormat(targetType, target, XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing);
result = true;
}
catch
{
result = false;
}
finally
{
if (workBook != null)
{
workBook.Close(true, missing, missing);
workBook = null;
}
if (application != null)
{
application.Quit();
application = null;
}
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
}
return result;
}
PowerPoint转换代码:private bool Convert(string sourcePath, string targetPath, PpSaveAsFileType targetFileType)
{
bool result;
object missing = Type.Missing;
ApplicationClass application = null;
Presentation persentation = null;
try
{
application = new ApplicationClass();
persentation = application.Presentations.Open(sourcePath, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse);
persentation.SaveAs(targetPath, targetFileType, Microsoft.Office.Core.MsoTriState.msoTrue);
result = true;
}
catch
{
result = false;
}
finally
{
if (persentation != null)
{
persentation.Close();
persentation = null;
}
if (application != null)
{
application.Quit();
application = null;
}
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
}
return result;
}
另外浏览xps文件有一个不错的小工具XPS Viewer EP.
- 常用Office 2007文件格式转换为xps和pdf代码整理
- 部分Office 2007文件格式转换为xps和pdf代码整理
- Adobe Acrobat PDF与Microsoft Office 2007和XPS
- [转]C#实现office文档转换为PDF或xps的一些方法
- C#实现office文档转换为PDF或xps的一些方法
- C#实现office文档转换为PDF或xps的一些方法
- C#实现office文档转换为PDF或xps的一些方法
- C#实现office文档转换为PDF或xps的一些方法
- C#实现office文档转换为PDF或xps的一些方法
- C#实现office文档转换为PDF或xps的一些方法
- C#实现office文档转换为PDF或xps的一些方法
- C#实现office文档转换为PDF或xps的一些方法
- C#实现office文档转换为PDF或xps的一些方法(留存备用)
- 转:C#实现office文档转换为PDF或xps的一些方法
- 文档格式转换(Office文档转成PDF或XPS)
- [文档格式转换神器]pdf,jpg,xps转doc,xls,ppt等office格式
- PDF文件如何转换为Word文件格式
- Linux Openoffice转换Office为pdf
- 化痰止咳的食疗
- notTX FLV探测/播放和基于P2P的即时通讯多功能软件
- 双OS下在Linux中挂载与卸载Windows分区的方法
- VirtualBox虚拟化应用
- CREATE PROCEDURE
- 常用Office 2007文件格式转换为xps和pdf代码整理
- ssssssss
- Windows下JDK1.6.0+Tomcat6.0的安装配置
- 简单实现C#生成Excel 2007文件并下载
- 人生哲言
- 一生有你
- 创建makefile工程
- 揭开Google后台工作的神秘面纱
- 常用正则表达式