Word Interop不保存文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Word Interop不保存文件相关的知识,希望对你有一定的参考价值。
我有这段代码应该打开一个docx文件,我想将其保存为pdf。 不幸的是,没有抛出错误,但PDF没有保存。
有关如何保存它的任何提示?
var wordApplication = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document wordDocument = null;
try
{
wordDocument = wordApplication.Documents.Open(docPath + ".docx");
if (wordDocument != null)
wordDocument.SaveAs2(docPath + ".pdf", Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF);
//wordDocument.ExportAsFixedFormat(docPath + ".pdf", Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF);
else throw new Exception("CUSTOM ERROR: Cannot Open Word Application");
}
catch (Exception ex)
{
new Exception("CUSTOM ERROR" + ex.Message);
}
this post已经在堆栈上详细介绍了许多不同的选项。
Word,尤其是Interop,在进行此类操作时尤其痛苦,因为它基于COM的本质意味着它并不总是遵循.NET规则。您可能需要在保存之前先激活()文档,否则可能存在其他问题。您可能希望尝试将文档保存为普通docx,以便隔离问题。也可能是文档中存在某些不能保存的内容,因此首先需要使用基本文档进行测试。
IIS调整是在应用程序池的高级设置中。您需要在特定标识下运行池,然后将“加载用户配置文件”设置为true。我从未使用像这样的Interop,它可能无法正常工作。如果您只是想将word文档转换为pdf,那么有比interop更简单的方法(OpenXML,pdf库等)。是否有理由使用Interop?
编辑:你可能想给DocX一个机会。你可以找到它here
看起来这是转换的常见问题。我过去使用Aspose做过这个,但我从来没有在服务器上转换PDF而不能简单地购买最好的组件(并且Aspose并不便宜!)。如果可以,我肯定会建议远离Interop,但在阅读该帖后可能需要它。
与服务器2008r2和现在的服务器2012r2和Office 2010/2016有同样的问题
尝试在C: Windows SysWOW64 config systemprofile中创建“桌面”文件夹
这对我有用
找到另一篇关于此的文章
office interop does not work in windows service
以上是关于Word Interop不保存文件的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Word Interop:COMException
C# Microsoft.Office.Interop.Word怎么获取页数和字数?