【问题标题】:How to use XPSDocument to open a XPS file that is contained in a WPF application as a binary resource?如何使用 XPSDocument 将包含在 WPF 应用程序中的 XPS 文件作为二进制资源打开?
【发布时间】:2015-05-27 03:08:19
【问题描述】:

基本上,我在 WPF 应用程序中嵌入了一个 xps 文件,其中包含一个 XPSDocument 查看器作为资源。

在加载应用程序时,我只希望文档查看器显示嵌入的资源。

public Page1()
{
  InitializeComponent();
  XpsDocument doc = new XpsDocument(SmartsysBrowser.Properties.Resources.test1, FileAccess.Read);
  docViewer.Document = doc.GetFixedDocumentSequence();
  docViewer.Focus();
}

但是这个命令没有通过集合

  XpsDocument doc = new XpsDocument(SmartsysBrowser.Properties.Resources.test1, FileAccess.Read);

我知道我需要输入 XPS 文档的文件路径,但由于它是作为资源嵌入的,该怎么做?

非常感谢大家。

背景: 我应该制作一个显示机密文档的应用程序,并且由于限制其制作/打印/传播的副本也很重要,因此我决定使用 ClickOnce WPF XBAP 应用程序。我的推理是,一旦我从 Web 服务器中删除应用程序,ClickOnce 应用程序的所有副本都可能变得无用。此外,这似乎是保护机密文件的最便宜和最可行的方法。请随时提出替代方案。我总是热衷于向大家学习。

【问题讨论】:

    标签: c# wpf xps xpsdocument


    【解决方案1】:

    当您使用嵌入式资源(即非 WPF 资源)时,您可以使用 Assembly.GetManifestResourceStream 从资源名称中获取 Stream,然后使用静态 Package.Open 获取 Package 实例,然后您可以使用另一个接受 Package 作为参数的 XpsDocument 构造函数。

    【讨论】:

      猜你喜欢
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多