我在 Cognos 中有一份报告。输出在浏览器本身内以 pdf 格式呈现。现在图像没有显示在 pdf 中。它们在 html 中显示得很好。现在,如果他们没有出现在 html 上,我会做一个查看源代码并检查图像 url 并从那里开始。但是当在浏览器中呈现 pdf 时,有没有办法做某种“查看源代码”?
2 回答
正如评论中已经推荐的那样,使用像RUPS(基于 iText)或任何其他的 PDF 浏览器。选择所需的页面,打开其 /Contents 值,选择流,您将看到类似这样的内容
/T1_0 1 Tf
0.0004 Tc -0.0002 Tw 13.98 0 0 13.98 189.87 476.67 Tm
(Praise for the First Edition)Tj
/T1_1 1 Tf
0.056 Tw 9.99 0 0 9.99 108.18 437.34 Tm
[(Each aspect is explained with numer)19(ous ex)]TJ
要显示文本的位置。以 Tf 结尾的命令选择文本的字体,以 Tc 或 Tw 结尾的命令选择字符或字间距,以 Tm 结尾的命令操作文本矩阵,从而定位、旋转、拉伸等要打印的文本,以及那些以 Tj 或 TJ 结尾的实际上是打印文本。
或者你会看到这样的东西:
533.352005 0 0 668.2319946 -1.2660065 -1.0559998 cm
/Im0 Do
要显示一些 XObject 的位置。以 cm 结尾的命令操作当前的变换矩阵(同样用于定位、旋转、拉伸等),以 Do 结尾的命令打印 XObject。
给定的 XObject 是什么,可以在页面的 /Resources 中的 /XObject 值中看到,例如:
所以 XObject 是一个图像(参见 /Subtype 的值)。
因此,在您的情况下
现在图像没有显示在 pdf 中。
您应该以同样的方式检查页面并搜索类似于上面摘录的内容。如果您没有找到引用的 XObject(也没有找到命令序列BI ... 键值对 ... ID ... 图像数据 ...内容流中的 EI;该序列定义了内联图像),则没有图像那个PDF页面。否则会有一个图像由于某种原因没有显示出来。
实际上还可以有许多其他命令,以及其他种类的 XObject。有关更多详细信息,请查看 PDF 规范 ISO 32000-1:2008(由 Adobe在此处提供),尤其是第 8 章和第 9 章。
...或在网上搜索确切的问题
http://www-01.ibm.com/support/docview.wss?uid=swg21339267
虽然它没有解释为什么它适用于 HTML 和 PDF,但大多数搜索表明这是一个 Web 服务器安全问题,在您的图像文件夹中启用匿名身份验证可能会解决它。