【问题标题】:Print Result not consist with the original XPS file打印结果与原始 XPS 文件不符
【发布时间】:2014-10-29 14:28:56
【问题描述】:

我正在尝试使用 PrintDialog 将我自己的 XPS 文件打印到打印机。但是打印结果和原来的XPS不一样。 XPS中的文字缺失,打印结果中没有文字显示

我已尝试对 PrintTicket 进行一些更改,但无法获得正确的打印输出。

如何设置打印对话框以获得正确的打印结果?或者有没有其他方法可以在 WPF 项目中进行打印?

示例代码。

   public void Print()
    {
        string fileName = "D:\\PAM\\in.xps";

        XpsDocument xpsFile = new XpsDocument(fileName, FileAccess.ReadWrite);

        PrintDialog printDialog = new PrintDialog();
        printDialog.ShowDialog();
        printDialog.PrintTicket.PageOrientation = PageOrientation.Landscape;
        printDialog.PrintTicket.OutputQuality = System.Printing.OutputQuality.High;
        printDialog.PrintTicket.OutputColor = System.Printing.OutputColor.Color;
        printDialog.PrintDocument(xpsFile.GetFixedDocumentSequence().DocumentPaginator, "");

        xpsFile.Close();

    }

原版 XPS 部分截图

打印结果

【问题讨论】:

    标签: printing printdialog


    【解决方案1】:

    不确定用户是否真的存在——但对于那些偶然发现这个问题的人来说,打印 XPS 文件通常是使用 XpsDocumentWriter 完成的。

    How to: Programmatically Print XPS Files

    请注意,所有打印机都不同,可能需要咨询打印机制造商以调试问题。我发现并不是所有的打印机都支持 XPS 文档打印。

    在一个有趣的案例中,我在一台 Xerox 打印机上打印,并安装了 PCL 打印驱动程序。当我查看PrintDialog.PrintQueue.IsXps 时,我看到它等于 false。然后我了解到打印机有一个特定的 XPS 打印机驱动程序。我安装了该驱动程序——它在我的打印机列表中添加了另一台打印机——并使用该驱动程序打印,IsXps 等于 true。这是打印机领域的众多陷阱之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-10
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-18
      • 1970-01-01
      • 2020-06-22
      相关资源
      最近更新 更多