Printing 打印结果与原始XPS文件不一致

Printing 打印结果与原始XPS文件不一致,printing,printdialog,Printing,Printdialog,我正在尝试使用PrintDialog将自己的XPS文件打印到打印机上。但打印结果与原始XPS不同。XPS中的文字缺失,打印结果中没有显示任何文本 我已尝试对PrintTicket进行一些更改,但无法获得正确的打印输出 如何设置printdialog以获得正确的打印结果?或者在WPF项目中是否有其他方式进行打印 示例代码 public void Print() { string fileName = "D:\\PAM\\in.xps"; XpsDoc

我正在尝试使用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的屏幕截图


打印结果

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

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

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