Reporting services 以编程方式将LocalReport呈现给XPS

Reporting services 以编程方式将LocalReport呈现给XPS,reporting-services,xps,xpsdocument,localreport,Reporting Services,Xps,Xpsdocument,Localreport,我正在尝试将渲染到XPS文件,以便可以使用XPS打印API从Windows服务打印它们,如中所示 我发现的问题是,我无法将本地报告直接呈现给XPS。也许我可以将它渲染成一个图像流,然后将该图像嵌入到手动创建的XPS中,但我不太喜欢这种解决方案 如果您能就如何将本地报告呈现给XPS提出建议,我将不胜感激。不幸的是,这并不容易。但事实并非如此 首先,一切都必须在STA线程中发生。因此,首先要解决线程问题 接下来,XPS文档与WPF紧密交织在一起。XPS文档将其内容公开为。这就是WPF。您的Local

我正在尝试将渲染到XPS文件,以便可以使用XPS打印API从Windows服务打印它们,如中所示

我发现的问题是,我无法将本地报告直接呈现给XPS。也许我可以将它渲染成一个图像流,然后将该图像嵌入到手动创建的XPS中,但我不太喜欢这种解决方案


如果您能就如何将本地报告呈现给XPS提出建议,我将不胜感激。

不幸的是,这并不容易。但事实并非如此

首先,一切都必须在STA线程中发生。因此,首先要解决线程问题

接下来,XPS文档与WPF紧密交织在一起。XPS文档将其内容公开为。这就是WPF。您的LocalReport不是WPF,而是一个基于表单的组件

您唯一的选择是将报告呈现为某种格式,这种格式可以通过您编写的某种解析和呈现过程转换为WPF表示。这可能与从报表创建图像一样简单,也可能与编写XSLX转换器一样困难


但为什么一开始就要为这个烦恼呢?显示如何在不处理XPS打印路径的情况下打印报告

谢谢你的回答!我无法使用该演练,因为我正在从Windows服务打印。从Windows服务打印的唯一方法是使用本机API;在本例中,我之所以选择XPS打印API是因为我在问题中提到的文章。@Federico:。。。你试过了吗?从服务打印的唯一真正问题是,您可能会从打印机驱动程序中获得弹出窗口。。。