我有一个内部应用程序,可以为不同的报告生成 PDF 文件。现在,根据报告类型,PDF 文件由 2 个不同的应用程序生成 - 第一个是neevia Doc Creator另一个是Oracle 报告。
如果我使用 Adobe Acrobat 阅读器打开任一 PDF 文件,然后发出打印命令,则两个文件都可以正确打印,并且保留所有格式。
但是,如果我将文件直接复制到打印机(打印机在网络上共享,复制文件是指问题copy <file> \\share_name
),那么通过 neevia Doc Creator 创建的 PDF 文件可以打印正常,并且格式得以保留。
如果我对使用 Oracle Reports 创建的 PDF 文件执行相同操作,则打印将会关闭,格式也不会保留。
起初,我以为这是一个字体替换问题,但发现 Oracle 报告生成的 PDF 中没有嵌入字体。因此我做了一些更改,现在字体已嵌入 - 但打印仍然不匹配。
为什么会这样?我错过了什么?有什么方法可以确定其他 PDF 有什么不同,导致其丢失格式吗?
从 Adobe 打印时,打印效果如下:
直接打印(即复印)后的效果如下
该打印机是 HP Color LaserJet 4700 PS,连接到运行 Windows Server 2003 的专用打印服务器。
答案1
字体是否嵌入在 PDF 中?如果没有,打印机可能使用本地字体。我写了一篇博客文章解释http://www.jpedal.org/PDFblog/?p=635
答案2
您的打印机似乎有一个于 2010 年 7 月发布的新固件版本。这是我要尝试的第一件事。
如果适用的话,还在 Win2K3 盒上安装最新的驱动程序。
答案3
有几个PDF 格式的版本。也许 neevia Doc Creator 创建的文件适合打印服务器上的驱动程序支持的旧版本,而 Oracle Reports 使用了驱动程序无法理解的某些较新版本的功能。当您使用 Acrobat Reader 打印时,它会生成 PostScript 文件以发送到打印机(并且毫不奇怪地可以毫无问题地处理所有版本的 PDF)。