在c中使用单词why always show';另存为';对话框

本文关键字:show 对话框 另存为 always why 单词 | 更新日期: 2023-09-27 18:25:35

我正在编写一些代码,试图将Word文档转换为swf文件。

我是这样做的:

  1. 我使用office组件sevice将word文档转换为PDF文档
  2. 我使用swftools将PDF转换为swf

我在我的计算机(64位,Windows Server 2008 R2,Office 2010)上做了这件事,它运行得很好,但当我把它放在服务器(64位、Windows Server 2008 R2Office2010)上时,当代码试图关闭程序中的Word时,会显示"另存为"对话框,无论我单击"保存"还是"取消",它都会抛出异常"文件为只读"。但实际上,我并没有更改原始文件,我只是打开它并将其保存为PDF文档。

以下是代码"将Word转换为PDF":

bool ret = true;
        Microsoft.Office.Interop.Word.Application newApp = new Microsoft.Office.Interop.Word.Application();
        Microsoft.Office.Interop.Word.Document doc = null;
        object Unknown = Type.Missing;
        try
        {
            object Source = path;
            object Target = path.Substring(0, path.LastIndexOf(".")) + ".pdf";
            if (outpath != "")
                Target = outpath;
            object readOnly = true;
            object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;
            doc = newApp.Documents.Open(ref Source, ref Unknown, ref readOnly,
                ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown,
                ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown);
            doc.SaveAs(ref Target, ref format,
                ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown,
                ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown);
        }
        catch (Exception e)
        {
            ret = false;
        }
        finally
        {
            if (doc != null)
            {
                doc.Close(ref Unknown, ref Unknown, ref Unknown);
                //dialog shows up here
            }
            newApp.Quit(ref Unknown, ref Unknown, ref Unknown);
            GC.Collect();
        }
        return ret;

有什么建议吗?

在c中使用单词why always show';另存为';对话框

将false作为第一个参数,提示将消失

http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.document.close(v=vs.80).aspx