1
私はC#WPFです。DocumentViewerでhtml 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を表示することができます。まず、私は常にXmlDocumentからの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をチェックするために、私は 'DocumentViewer'の代わりに' WebBrowser'を作成しようとしました。その場合、私は 'webBrowser.NavigateToStream(ms)'を行い、私のウィンドウは正しいページを表示しますが、印刷できず、ビューアも表示されません。 –