如何在混合模式项目中处理打印?

时间:2013-10-09 08:42:51

标签: c# c++ .net wpf c++-cli

我有一个混合模式项目C#(WPF) - > C ++ / Cli - >非托管C ++。

图形用c ++处理。绘制一些东西然后转移到c#通过c ++ / cli接口对象。在c#中,此接口放在xaml表单上并显示。

现在我需要将此图片发送到printpreview,然后发送到打印机。

怎么可能这样呢?

我考虑过序列化,但找不到有关序列化c ++ / cli接口的任何信息。

有什么想法吗?谢谢!

修改 好的,所以我必须进一步解释。

在我的c#项目中,我有一个c ++ / cli对象,通过它可以用c ++与我的图形进行通信,这个对象有很多方法,比如f.ex:

object.DrawLine
object.DrawSmthElse
object.UpdateImage

等。等

所以,当在WPF中我显示一个xaml表单时,这个表单的填充是通过这个对象发生的,比如我调用所有这些方法来绘制我需要的所有东西。

现在的问题是:我需要向打印机发送这个图形部分(用c ++完成)。我应该以什么形式这样做?我怎样才能将此对象传递给c#中的DocumentViewer?

我希望这足以让问题暂停。

1 个答案:

答案 0 :(得分:2)

尝试将位图的原始字节发送到托管代码和非托管代码。

在托管端,您可以创建位图对象with a Stream。您还可以保存现有位图out to a stream。您可以使用MemoryStream轻松地在C ++ / CLI对象中的托管代码和非托管代码中读取和写入字节。

-

如果图片已经在管理端(我无法判断它是否存在),那么您可以使用PrintPreviewDialog和PrintDialog(example