1

我正在研究一些试图将 Word 文档转换为 swf 文件的代码。

我这样做:

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

我在我的计算机(64 位,Windows Server 2008 R2,Office 2010)上完成了它,它工作正常,但是当我将它放入服务器(64 位,Windows Server 2008 R2,Office2010)时,一个“另存为”对话框将显示代码何时尝试关闭程序中的 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;

有什么建议么?

4

1 回答 1

4

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

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

于 2013-07-30T04:12:54.433 回答