源博客http://blog.csdn.net/kable999/article/details/4786654
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;
}
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;
}
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;
}
public void PrintWord(string wordfile)
{
oWord.ApplicationClass
word = new oWord.ApplicationClass();
Type
wordType = word.GetType();
//打开WORD文档
oWord.Documents
docs = word.Documents;
Type
docsType = docs.GetType();
object objDocName
= wordfile;
oWord.Document
doc = (oWord.Document)docsType.InvokeMember("Open",
System.Reflection.BindingFlags.InvokeMethod, null,
docs, new Object[] {
objDocName, true, true });
//打印输出到指定文件
//可以使用
doc.PrintOut();方法,次方法调用中的参数设置较繁琐,建议使用 Type.InvokeMember
来调用时可以不用将PrintOut的参数设置全,只设置4个主要参数
Type
docType = doc.GetType();
object printFileName
= wordfile + ".xps";
docType.InvokeMember("PrintOut",
System.Reflection.BindingFlags.InvokeMethod, null,
doc, new object[]
{ false, false,
oWord.WdPrintOutRange.wdPrintAllDocument, printFileName });
//退出WORD
wordType.InvokeMember("Quit",
System.Reflection.BindingFlags.InvokeMethod, null,
word, null);
}
public void PrintExcel(string execlfile)
{
Excel.ApplicationClass
eapp = new Excel.ApplicationClass();
Type
eType = eapp.GetType();
Excel.Workbooks
Ewb = eapp.Workbooks;
Type
elType = Ewb.GetType();
object objelName
= execlfile;
Excel.Workbook
ebook = (Excel.Workbook)elType.InvokeMember("Open",
System.Reflection.BindingFlags.InvokeMethod, null,
Ewb, new Object[] {
objelName, true, true });
object printFileName
= execlfile + ".xps";
Object
oMissing = System.Reflection.Missing.Value;
ebook.PrintOut(oMissing,
oMissing, oMissing, oMissing, oMissing, true, oMissing,
printFileName);
eType.InvokeMember("Quit",
System.Reflection.BindingFlags.InvokeMethod, null,
eapp, null);
}C#实现office文档转换为PDF或xps的一些方法( 转),布布扣,bubuko.com
C#实现office文档转换为PDF或xps的一些方法( 转)
原文:http://www.cnblogs.com/ymj126/p/3588096.html