2012-08-15 40 views
1

我们有一个WPF应用程序,可以执行报告预览或报告打印。 这两个请求都使用相同的代码。字符在打印时丢失

  • 调用从Microsoft报告服务获取报告的报告服务。
  • 将报告转换为所需格式(本例中为PDF)。
  • 然后以字节数组的形式返回报告。

然后将结果作为二进制流写入临时文件,并弹出到窗口中以预览或启动要打印的进程。

在这两种情况下都会传递临时文件。

打印预览完美无瑕!但打印报告将打印所有'ti'消失的消息。我看到ESC t NUL/SOH有一个打印机转义序列,我假设,如果出于某种原因,转义字符进入该流中,则会导致忽略的打印序列。因此缺少的字符。

我的第一个问题是,如果任何人有过使用生成的PDF报告的经验? (显然)我的第二个问题是,如果有人知道我可以用来查看正在打印的文件中的二进制数据的实用程序,以查看每个'ti'序列之前的文件中有什么?

回答

3

经过大量搜索后,我在Adobe论坛上发现一篇文章,指出版本8有一个不打印字符组合的错误。一旦我挖得更深,似乎它已经返回并且建议的解决方法解决了我们的问题。

解决方法:将图像打印为图像。

Adob​​e似乎无法做到他们的软件必须做的最基本的事情,打印确切的内容!

2

回答您的问题:

  • 首先,做好以下两两件事之一:
    1. 设置Windows打印后台处理程序的属性不删除打印作业。
    2. 暂停目标打印队列。
  • 然后,抓住从Windows printspool目录中的假脱机文件(其位置就是你可以通过查看(右键单击)找出“属性...”中的“打印机和传真的对话'文件夹)。
+0

我发现的一件事是在http://mh-nexus.de/en/hxd/上的文件十六进制查看器,它让我看看这些文件。 – 2012-08-22 17:07:46

+0

@SASS_Shooter:我的答案也是帮助你套索文件吗? – 2012-08-22 17:49:48

+0

没有。看到我的答案。 – 2012-09-05 15:11:58

1

我意识到这是一个旧帖子,但我想从上面的评论中添加一些更新信息,指出这是Acrobat 8​​的一个问题。我们使用的是Acrobat 10.1.6,但仍然存在相同的问题。从我读到的,这是Adobe产品本身的一个问题。我见过的唯一真正的修复(实际上是解决方法)是将其打印为图像。 LAME

0

从firefox(acrobat reader)直接打印时,我遇到了类似的问题。我下载了文件,然后打印。问题解决了。