1
我使用的是C#WPF。在DocumentViewer中显示html MemoryStream
我想创建一个打印功能。首先,我生成从一个如下一个MemoryStream:
XmlDocument xmlDoc;
XslCompiledTransform _xsl; // Initialized before
/* creating Doc */
MemoryStream ms = new MemoryStream();
_xsl.Transform(xmlDoc, null, ms);
ms.Flush();
ms.Position = 0;
我可以显示在使用webBrowser.NavigateToStream(e.NewValue as Stream);
web浏览器元件将MemoryStream。 但是现在我想在打印之前显示MemoryStream。我有一个预览窗口:
<Window Title="PrintView">
<Grid>
<DocumentViewer x:Name="printViewer"
Margin="10"
Document="{Binding DocumentView}"/>
</Grid>
</Window>
,约束件:
FixedDocumentSequence _fixDoc = null;
public FixedDocumentSequence DocumentView
{
get
{
return _fixDoc;
}
set
{
_fixDoc = value;
OnPropertyChanged(nameof(DocumentView));
}
}
但我怎么可以创建MemoryStream ms
FixedDocumentSequence DocumentView
?
我试过但是指令'Package package = Package.Open(xpsStream)'出现FileFormatException“文件包含损坏的数据”。但在WebBrowser上显示相同的MemoryStream效果很好。 –
当你说'XmlData'时这个'bytes'是什么? –
我不明白你的问题。创建我的'MemoryStream ms'后,我打电话给你的功能,我有错误。为了检查我的MemoryStream,我试图创建一个'WebBrowser'而不是'DocumentViewer'。在这种情况下,我做'webBrowser.NavigateToStream(ms)',我的窗口显示正确的页面,但不可打印,没有查看器。 –