我在 Microsoft Word 中创建了一个 XPS 文档(打印 --> 打印到 XPS Writer)。在 Windows 7(64 位)机器上,我可以在 XPSViewer 或 IE 中打开此文件并将其发送到实际打印机,然后成功打印了 XPS 文档。到目前为止,所有测试都是在联网打印机上进行的。
在我的 Windows XP(32 位)机器上,我可以使用 Microsoft Word 创建 XPS 文档,但我尝试将 XPS 文档打印到实际打印机上失败。此机器显示作业已成功发送到打印机,但打印机未打印文档,打印机日志显示未收到作业。我尝试从 XP 和 Win7 机器打印到完全相同的打印机。尝试打印非 XPS 文档在 XP 机器上仍然可以正常工作。
XP 机器缺少什么会导致这种情况?我安装了 .Net 4.0 框架。
答案1
可能是你的 XP 设置中的驱动程序问题
为什么不尝试使用 SumatraPDF 1.9 来读取 XPS(便携版是一个单独的文件,无需安装),然后尝试从其窗口打印,如果失败,可以将其另存为 PDF,然后打开,再尝试打印,这将证明是应用程序(xps 查看器)还是打印驱动程序/后台打印程序拒绝了一些 xps 字符串
如果它是最新的驱动程序,请尝试修改一些高级设置,例如后台处理原始设置等。
答案2
SumatraPDF 可以直接通过 CLI 将文件发送到打印机。
在默认打印机上打印 PDF 文件
-print-to-default $file.pdf
在指定的打印机上打印 PDF
-print-to $printer_name $file.pdf
打开 PDF 文件并显示打印对话框以选择打印机和打印选项
-print-dialog $file.pdf
当使用 -print-todefault 或 -print-to 时,打印后将退出
-exit-on-print
因此尝试一下:
驱动器:\路径\SumatraPDF.exe -print-to-default -exit-on-print "驱动器:\路径\我的测试文件.xps"
或者
驱动器:\路径\SumatraPDF.exe -print-dialog "驱动器:\路径\我的测试文件.xps"
答案3
基于这个帖子,尝试禁用打印机后台处理。
这是在打印机的“属性”>“高级”选项卡中完成的,选中“直接打印到打印机”。
答案4
我认为,微软内部存在 XPS 选项和 64 位操作系统机器的问题。我认为,微软 OneNote 有一个很棒的“发送到 OneNote”打印选项,它使用 XPS 驱动程序……但如果是 64 位操作系统,至少对于 OneNote 2007 版本来说不是这样。一位微软 OneNote 团队工程师利用业余时间编写了一个“修复方案”,用于在 x64 机器上发送到 OneNote,其中涉及他自己制作的 XPS 驱动程序,他已将其发布供下载。这甚至不是官方的微软驱动程序解决方案。他们可能已经为 OneNote 2010 版本修复了这个问题,也可能没有。但是,64 位操作系统 XPS 选项存在问题,因为微软没有正确解决它。您可能需要搜索微软,看看他们是否有针对特定 XPS 问题的快速修复驱动程序。我很幸运地搜索到了他们的微软 OneNote 网站。