Как использовать XPSDocument, чтобы открыть файл XPS, содержащийся в приложении WPF, в качестве двоичного ресурса? - PullRequest
1 голос
/ 24 февраля 2010

По сути, я встроил файл xps в приложение WPF, содержащее средство просмотра 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 является подходящим способом. По моему мнению, после удаления приложения с веб-сервера все копии приложения ClickOnce могут оказаться бесполезными. Кроме того, кажется, что это самый дешевый и надежный способ защиты конфиденциального документа. Пожалуйста, не стесняйтесь предлагать альтернативы. Я всегда хочу учиться у всех вас.

1 Ответ

1 голос
/ 24 февраля 2010

Поскольку вы используете встроенные ресурсы (т.е. не-WPF-ресурсы), вы можете использовать Assembly.GetManifestResourceStream, чтобы получить Stream из имени вашего ресурса, затем использовать статический Package.Open для получения экземпляра Package, тогда вы можете использовать другой конструктор XpsDocument, который принимает Package в качестве параметра.

...