簡體   English   中英

在c#中使用word為什么總是在關閉時顯示“另存為”對話框

[英]using word in c# why always show 'save as' dialog when close

我正在研究一些試圖將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;

有什么建議么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM