Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 打印XPS文档会产生奇怪的符号_C#_.net_Printing_Windows Xp_Xps - Fatal编程技术网

C# 打印XPS文档会产生奇怪的符号

C# 打印XPS文档会产生奇怪的符号,c#,.net,printing,windows-xp,xps,C#,.net,Printing,Windows Xp,Xps,我需要将XPS文档直接打印到Windows XP平台上的打印机上。我正在使用Microsoft XPSPrinter(来自C#)。在Windows 7上一切正常,但在WinXP上打印时,我发现: 问题是,在另一个WinXP安装上,打印完全相同的文档“偶尔”工作(是的…-。-),我无法理解是什么导致它工作/中断 一些背景信息: 我在32位模式下使用.Net 4.0从控制台应用程序打印 XPS文档由IIS web服务器上的Aspose.Words生成 XPS文档将写入一个临时文件,该文件将传递给

我需要将XPS文档直接打印到Windows XP平台上的打印机上。我正在使用Microsoft XPSPrinter(来自C#)。在Windows 7上一切正常,但在WinXP上打印时,我发现:

问题是,在另一个WinXP安装上,打印完全相同的文档“偶尔”工作(是的…-。-),我无法理解是什么导致它工作/中断

一些背景信息:

  • 我在32位模式下使用.Net 4.0从控制台应用程序打印
  • XPS文档由IIS web服务器上的Aspose.Words生成
  • XPS文档将写入一个临时文件,该文件将传递给PrintTicket
  • 使用XPS查看器打开临时文件位置中的XPS文档时,它看起来非常好……因此,至少它已从服务器正确下载并保存到FS
  • 总是打印同一个文档:在Win7上工作,偶尔在一个WinXP上工作,从不在另一个WinXP上工作(所以一定有不同的东西…但是什么???想法??)
  • 在“工作”XP机上,它也经常打印部分正确,这意味着只有中间的一些符号是错误的
  • 从ActiveX执行包含打印代码的DLL时始终有效(不要询问)…从ConsoleApplication执行同一DLL时从不在该计算机上有效
到目前为止没有成功的试验:

  • 但我无法执行他的示例应用程序,因为我没有在WinXP系统上安装
    XpsPrint.dll
  • 字体问题??我使用的是Arial,所以它应该很好,字体应该出现在目标系统上。(还有,为什么要打印…)

尝试了太多东西,我有点不知所措,我还可以尝试什么。非常感谢您提出的任何想法,文档打印如此奇怪的原因可能是什么。

是否有任何一台XP机器使用的区域设置/语言不是en US?是否所有的XPS文档都是在同一台IIS服务器上生成的,然后在不同的计算机上打印?两者似乎都有en-US…但我想我发现了问题。需要验证,但目前它似乎正在运行。一旦我确定它能工作,我会发布更新。你是从Windows服务打印的吗?这似乎导致了同样的问题。不,我们正在启动一个控制台应用程序,基本上是将要打印的文件传递给它。它现在似乎起作用了。显然,问题是主控制台应用程序进程终止“太快”…这就像XPS文档的打印后台处理程序没有获得“所有内容”,尽管这听起来很奇怪。我还在调查。到目前为止,它似乎现在工作..我会在几周后发布一个更新,当我确定它的工作预期。