1

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

图形是用 c++ 处理的。有些东西被绘制出来,然后通过 c++/cli 接口对象传输到 c#。在 c# 中,此接口以 xaml 形式显示并显示。

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

怎么可能做到?

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

有任何想法吗?谢谢!

编辑 好的,所以我必须进一步解释。

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

object.DrawLine
object.DrawSmthElse
object.UpdateImage

等等等等

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

现在的问题是:我需要将这个图形部分准确地发送到打印机(这是用 C++ 完成的)。我应该以什么形式进行?例如,如何将此对象传递给 c# 中的 DocumentViewer?

我希望这足以让这个问题搁置。

4

1 回答 1

2

尝试向/从托管代码和非托管代码发送位图的原始字节。

在托管方面,您可以使用 Stream创建位图对象。您还可以将现有位图保存到流中。您可以使用 MemoryStream 轻松地在 C++/CLI 对象中的托管和非托管代码中读取和写入字节。

--

如果图像已经在托管端(我不知道它是否存在),那么您可以使用 PrintPreviewDialog 和 PrintDialog (示例

于 2013-10-09T08:58:40.657 回答