300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 常用Office 文件格式转换为xps和pdf代码整理

常用Office 文件格式转换为xps和pdf代码整理

时间:2020-02-27 03:37:39

相关推荐

常用Office 文件格式转换为xps和pdf代码整理

转换功能是通过调用安装了转换XPS和PDF的AddIn的Office对象模型完成的. 代码支持Office 支持的一切文件格式:

Office 组件

扩展名

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转换代码:

privateboolConvert(stringsourcePath,stringtargetPath,XlFixedFormatTypetargetType)

{

boolresult;

objectmissing=Type.Missing;

ApplicationClassapplication=null;

WorkbookworkBook=null;

try

{

application=newApplicationClass();

objecttarget=targetPath;

objecttype=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();

}

returnresult;

}

PowerPoint转换代码:

privateboolConvert(stringsourcePath,stringtargetPath,PpSaveAsFileTypetargetFileType)

{

boolresult;

objectmissing=Type.Missing;

ApplicationClassapplication=null;

Presentationpersentation=null;

try

{

application=newApplicationClass();

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();

}

returnresult;

}

感谢同事Hong的协助,把这部分功能实现,现在share给大家,希望为需要的朋友节省时间.

另外浏览xps文件有一个不错的小工具XPS Viewer EP.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。