1

アプリケーションの一部として、ユーザーが読み取り専用であることを明確に示す方法で Office ドキュメントのプレビューを取得できるウィンドウが必要です。また、ウィンドウは画面の一部にすぎないため、Office アプリのフル バージョンをリボンで開くと、少し多くのスペースが必要になります。ユーザーは大量のドキュメントを閲覧することになるため、高速である必要があり、速度が重要です。

Google やこのサイトなどの多くの助けを借りて、これを見つけました。ドキュメントが読み取り専用で表示されます。小切手。xpsfil を Windows フォームに送り返して、必要以上に画面上のスペースを占有することなく表示できるようにします。小切手。スピード; いいえ。とても遅いです。Office ドキュメントをすばやく表示し、ユーザーが読み取り専用であることを明確にする方法を知っている人はいますか? 大いに感謝する

    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