方法一:Microsoft.Office.Interop.Word另存
/// <summary>
/// 将word保存为pdf文件/// </summary>
/// <param name="wordFileName">完整的文件名</param>
/// <param name="savePath">保存的路径</param>
/// <returns>保存后的文件名</returns>
public string WordToPdf(string wordFileName, string savePath = null)
{
//宣告WORD物件
Microsoft.Office.Interop.Word.ApplicationClass word = new Microsoft.Office.Interop.Word.ApplicationClass();
Type wordType = word.GetType();
string wordSaveFileName = "";
try
{
Microsoft.Office.Interop.Word.Documents docs = word.Documents;
//打開WORD檔
Type docsType = docs.GetType();
word.DisplayAlerts = WdAlertLevel.wdAlertsNone;
word.Visible = false;
object oMissing = System.Reflection.Missing.Value;
object filepath = wordFileName;
Microsoft.Office.Interop.Word.Document doc = word.Documents.Open(ref filepath, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
//(Microsoft.Office.Interop.Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { wordFileName, true, true });
//將開啟檔案轉存為HTML檔
Type docType = doc.GetType();
wordSaveFileName = Path.GetFileName(wordFileName).Replace(Path.GetExtension(wordFileName), ".pdf");
string saveFile = "";
if (String.IsNullOrEmpty(savePath))
{
saveFile = wordFileName.Replace(Path.GetExtension(wordFileName), ".pdf");
}
else
{
saveFile = savePath + "\\" + wordSaveFileName;
}
docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { saveFile, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF });
docType.InvokeMember("Close", System.Reflection.BindingFlags.InvokeMethod, null, doc, null);
}
finally
{
//退出 Word
wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);
}
return wordSaveFileName;
}
方法二:Aspose.Words
Aspose.Words.Document document = new Aspose.Words.Document(fileName);
document.Save(fileName.Replace(Path.GetExtension(fileName), ".pdf"), SaveFormat.Pdf);