1

作为应用程序的一部分,我需要一个窗口,用户可以在其中以一种对他们来说很清楚它是只读的方式来预览 Office 文档。此外,窗口只是屏幕的一部分,因此使用功能区打开完整版的 Office 应用程序需要一点空间。用户将浏览大量文档,因此必须快速,速度是关键。

我发现了这一点,在谷歌、这个网站和其他网站的大力帮助下:它以只读方式显示文档;查看。它将 xpsfil 发送回 Windows 窗体以进行查看,而不会占用屏幕上的空间;查看。速度; 哦不。太慢了。有没有人知道一种更好的快速查看办公文档的方法,并且对用户来说显然是只读的?帮助很大

    private readonly string TEMP = Environment.ExpandEnvironmentVariables("%tmp%");
    private  object nullObject = Type.Missing;


    private string ConvertWordtoXps(string wordDocName)
    {
        Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
        wordApp.Documents.Open(wordDocName, ConfirmConversions: false, ReadOnly: true);
        string xpsFileName = String.Concat(TEMP, "\\", Path.GetFileNameWithoutExtension(wordDocName), ".xps");

        try
        {
            //wordApp.ActiveDocument.ExportAsFixedFormat(xpsFileName, WdExportFormat.wdExportFormatXPS, false, WdExportOptimizeFor.wdExportOptimizeForOnScreen, WdExportRange.wdExportAllDocument, 1, 1, WdExportItem.wdExportDocumentContent, false, true, WdExportCreateBookmarks.wdExportCreateNoBookmarks, false, true, false, nullObject);
            wordApp.ActiveDocument.SaveAs2(xpsFileName, FileFormat: WdSaveFormat.wdFormatXPS);
            return xpsFileName;
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);
        }
        finally
        {
            ((Microsoft.Office.Interop.Word._Application)wordApp).Quit(SaveChanges: false, OriginalFormat: nullObject, RouteDocument: nullObject);
        }
        return null;

    }
4

0 回答 0