问:有没有办法在 WinRT 应用程序中打印 XPS 文档?
背景:我想从基于 XAML 的 Windows 应用商店应用程序中打印 XPS 文档,但这似乎是不可能的。标准桌面方法StartXpsPrintJob不适用于 Windows 应用商店应用程序。WinRT 特定的Windows.UI.Xaml.Printing / Windows.Graphics.Printing方法需要一个实际的 UIElement,但 WinRT XAML 不支持所有 XPS 功能,例如非矩形剪切路径、不透明蒙版等(它也不支持似乎支持打印 Glyph 元素,但那是另一回事了。)那么,我是否遗漏了什么,或者没有办法直接从 WinRT 打印 XPS 文档?由于 Windows 使用 XPS 作为其打印路径,因此无法直接提供 XPS 数据进行打印似乎很奇怪。
更新:我花了更多时间尝试直接打印 XPS 文档。Direct2D 提供打印接口,但其 API 仅接受 Direct2D 命令。我想直接发送 XPS 数据,但此页面显示“Windows 打印子系统和打印机组件......对 Direct2D 应用程序完全隐藏。” 目前,我可以看到打印 XPS 文档的唯一方法是将它们转换为一系列 Direct2D 命令,然后通过PrintControl立即将其转换回 XPS 。这似乎没有必要且效率低下。