2

在他的博客文章中,无需用户交互即可将文档打印到 Microsoft XPS Document Writer冯远说

如果您从自己的应用程序打印,很容易将 MXDW 指定为打印机驱动程序,并为要保存到的 XPS 文档提供文件名

谁能解释如何做到这一点并提供代码示例?

我遇到的主要问题是抑制 Microsoft XPS 文档编写器弹出的另存为对话框。我讨厌像袁在他的帖子中那样诉诸 UI 黑客攻击。

目前,我的应用程序对用户想要使用的任何打印机的设备上下文进行 GDI 绘图调用。我可以在 XPS Document Writer 上进行这些调用,但是当需要完成打印时,XPS Writer 会弹出另存为对话框。

4

4 回答 4

1

实际上,同一作者提供了答案Printing to Microsoft XPS Document Writer 而没有显示 File Save Dialog Box。解决方案是使用 Microsoft XPS Document Writer 打印机打印到文件。

于 2009-05-04T05:27:39.333 回答
0

如果您想避免 XPS 文档碰到文件系统,Shahed Kahn 在Loading Xps From MemoryStream中提供了示例代码。

于 2009-05-01T08:35:51.543 回答
0

这对我有用:

  With Me.PrintDocument
     With .PrinterSettings
        .PrinterName = "Microsoft XPS Document Writer"
        .PrintToFile = True
        .PrintFileName = "c:\test.xps"
     End With
    .Print()
  End With

据我所知,这是无证的。试一试,您将不会看到可怕的“另存为”对话框。相反,您会得到一个由 MXDW (c:\test.xps) 生成的干净 XPS 文件。

于 2010-08-16T17:06:25.953 回答
0

只需删除并重新安装 Microsoft XPS Document Writer,在重新安装过程中按照以下步骤操作。

转到开始 - 控制面板 - 添加新打印机。然后选择本地打印机和创建新端口。在组合框中选择本地端口。将出现询问端口名称的对话框。为了让我们的 XPS 驱动程序在不询问用户位置的情况下打印到指定文件,请为此输出文件写入完整路径。该文件目前不需要存在(例如 c:\mydriveroutput.xps)。

有关详细信息,请参阅此链接:https ://kibitzercz.blogspot.in/2012/01/building-and-using-xpsdrvsmpl-under.html

于 2018-04-25T10:17:56.587 回答