作为应用程序的一部分,我需要一个窗口,用户可以在其中以一种对他们来说很清楚它是只读的方式来预览 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;
}