打印结果不包含原始XPS文件

时间:2014-10-29 14:28:57

标签: printing printdialog

我尝试使用PrintDialog将自己的XPS文件打印到打印机。但是打印结果与原始XPS不同。缺少XPS中的单词,打印结果中没有显示文本

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

如何设置printdialog以获得正确的打印结果?或者还有其他方法在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部分的屏幕截图

打印结果

1 个答案:

答案 0 :(得分:0)

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

How to: Programmatically Print XPS Files

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

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