我正在尝试将LocalReport呈现为XPS文件,因此我可以使用XPS Print API从Windows服务中将其打印出来,如this article中所示。
我发现的问题是我无法直接向XPS呈现本地报告。也许我可以将其渲染为图像流,然后将该图像嵌入到手动创建的XPS中,但是我不太喜欢这种解决方案。
我非常感谢任何有关将LocalReport渲染到XPS的建议。
不幸的是,这并不容易。除外。
首先,一切都必须在STA线程内发生。因此,您首先要解决线程问题。
接下来,XPS文档与WPF紧密相连。 XPS文档将其内容公开为FixedDocumentSequences,即DependencyObjects。这就是WPF。您的LocalReport是not WPF,它是基于表单的组件。
您唯一的选择是将报表呈现为某种格式,该格式可以通过您编码的某种解析和呈现过程转换为WPF表示形式。这可能像从报表创建图像一样简单,也可能像编写XSLX转换器一样困难。
但是为什么首先还要为此烦恼呢? The documentation for LocalReport显示了如何在不处理XPS打印路径的情况下打印报告。