C# C.net打印票证XML格式不正确(使用徽章打印机)

C# C.net打印票证XML格式不正确(使用徽章打印机),c#,.net,printing,printdialog,C#,.net,Printing,Printdialog,使用.NET 3.5和4.5,我可以打印一个简单的画布,中间有一个红色矩形,使用PrintDialog.PrintVisual不会有任何问题。这些打印作业被发送到CutePDF和标准打印机,它们都可以正常工作 但是,我现在正尝试将相同的打印作业发送到Javelin卡打印机,当测试项目设置为.NET3.5时,它会工作,但如果我的4/4.5更高,它会抛出异常。例外情况如下: 附加信息:PrintTicket XML格式不正确。参数 被引用,但未定义 . AAA 我需要它在.NET4.5中工作,所以让

使用.NET 3.5和4.5,我可以打印一个简单的画布,中间有一个红色矩形,使用PrintDialog.PrintVisual不会有任何问题。这些打印作业被发送到CutePDF和标准打印机,它们都可以正常工作

但是,我现在正尝试将相同的打印作业发送到Javelin卡打印机,当测试项目设置为.NET3.5时,它会工作,但如果我的4/4.5更高,它会抛出异常。例外情况如下:

附加信息:PrintTicket XML格式不正确。参数 被引用,但未定义 . AAA

我需要它在.NET4.5中工作,所以让我们关注它。接下来,我创建了两个PrintDialog对象,PrintDialog1由我自己创建,告诉它使用哪台打印机,PrintDialog2使用Show方法,这样我可以从对话框中选择打印机。PrintDialog1引发相同的异常。PrintDialog2工作正常

我按照msdn上显示的方式创建了PrintQueue和PrintTicket:

如果我将PrintDialog1的PrintTicket设置为PrintDialog2,那么它会工作,如下所示:

PrintDialog1.PrintTicket=PrintDialog2.PrintTicket

但是,我无法在打印过程中显示对话框,因此无法访问工作的PrintTicket。我将它们并排进行了比较,唯一明显的区别是排序规则和PageMediaSize,我将它们设置为与PrintDialog2.PrintTicket相同的值,但它仍然抛出异常


你知道发生了什么事吗?非常感谢您的帮助

在过去与卡片打印机打过交道后,我知道这会是一件多么痛苦的事情。打印机的确切制造型号和使用年限是多少?另外,您是否尝试过在测试项目上进行.Net Framework升级?请进一步评论,是的,请再说一遍,您能否向我们展示您用于与图像和打印机交互的所有代码printer@CodeWarrior嘿,谢谢大家的关注!谢天谢地,在打印机的首选项中有一个“纸张来源”字段,其中有“自动”、“自动选择”和“手动”选项。显然,在使用.NET4及以上版本时,它需要启用自动选择,而不是自动选择。谁知道?!我不知道两者之间的区别是什么,也不知道为什么它会在一个更新的.NET中造成如此负面的影响。哦,好吧。。无论如何,谢谢你,我很感激你的兴趣!在过去与卡片打印机打过交道后,我知道这会是一件多么痛苦的事情。打印机的确切制造型号和使用年限是多少?另外,您是否尝试过在测试项目上进行.Net Framework升级?请进一步评论,是的,请再说一遍,您能否向我们展示您用于与图像和打印机交互的所有代码printer@CodeWarrior嘿,谢谢大家的关注!谢天谢地,在打印机的首选项中有一个“纸张来源”字段,其中有“自动”、“自动选择”和“手动”选项。显然,在使用.NET4及以上版本时,它需要启用自动选择,而不是自动选择。谁知道?!我不知道两者之间的区别是什么,也不知道为什么它会在一个更新的.NET中造成如此负面的影响。哦,好吧。。无论如何,谢谢你,我很感激你的兴趣!