image - PDF 内嵌图像不起作用

标签 image pdf inline

我在 pdf 流中定义了图像。它工作正常,并向我显示了一个红色 4 像素调色板:

%PDF-1.7
1 0 obj
<<
  /Type     /Catalog
  /Pages    2 0 R
  /PageMode /UseNone
>>
endobj
2 0 obj
<<
  /Type  /Pages
  /Count 1
  /Kids  [3 0 R]
>>
endobj
3 0 obj
<<
  /Type      /Page
  /Parent    2 0 R
  /MediaBox  [0 0 50 20]
  /Contents  4 0 R
  /Resources
  <<
    /XObject << /Im1 5 0 R >>
  >>
>>
endobj
4 0 obj
<<
  /Length 38
>>
stream
  40 0 0 10 5 5 cm
  /Im1          Do
endstream
endobj
5 0 obj
<<
  /Type             /XObject
  /Subtype          /Image
  /Width            4
  /Height           1
  /ColorSpace       /DeviceRGB
  /BitsPerComponent 2
  /Filter           /ASCIIHexDecode
  /Length 10
>>
stream
 01 08 30
endstream
endobj
xref
0 6
0000000000 65535 f 
0000000009 00000 n 
0000000090 00000 n 
0000000155 00000 n 
0000000311 00000 n 
0000000400 00000 n 
trailer
<<
  /Size 6
  /Root 1 0 R
>>
startxref
720
%%EOF

但是当我尝试显示与内嵌图像相同的图像时,只有一个空白页面:

...
...same as above...
...
3 0 obj
<<
  /Type      /Page
  /Parent    2 0 R
  /MediaBox  [0 0 50 20]
  /Contents  4 0 R
>>
endobj
4 0 obj
<<
  /Length 92
>>
stream
 40 0 0 10 5 5 cm
 BI
  /W   4
  /H   1
  /CS  /RGB
  /BPC 2
  /F   /AHx
 ID
  01 08 30
 EI
endstream
endobj
...

当我不使用图像属性缩写时,已经有一个空白页面。

有人知道可能是什么问题吗?

感谢您的提示和帮助!

最佳答案

好吧,这两天我把规范看了一遍又一遍。但这是值得的。

有两个错误。只有他们两个的修正才给了我想要的结果......

首先,我没有结束 ID 和 ED 之间的 ASCIIHexDecodeFilter 部分。规范中写道:“右尖括号字符 (>) 表示 EOD。”如果存在使用 ASCIIHexDecodeFilter 过滤的完整流,则 Adob​​e Reader 通过读取/Length 属性了解流的结尾。但作为流本身的一部分,它需要 > 字符。

第二件事是我的页面对象(3 0 obj)需要强制/Resources 属性。它可能是空的(/Resources << >>),但可能不会丢失。

感谢所有尝试回答或提供帮助的人!!

这里是正确的工作内联图像 PDF 文件流:

%PDF-1.7
1 0 obj
<<
  /Type     /Catalog
  /Pages    2 0 R
  /PageMode /UseNone
>>
endobj
2 0 obj
<<
  /Type  /Pages
  /Count 1
  /Kids  [3 0 R]
>>
endobj
3 0 obj
<<
  /Type      /Page
  /Parent    2 0 R
  /MediaBox  [0 0 50 20]
  /Contents  4 0 R
  /Resources << >>
>>
endobj
4 0 obj
<<
  /Length 90
>>
stream
q
 40 0 0 10 5 5 cm
 BI
  /W 4
  /H 1
  /CS/RGB
  /BPC 2
  /F /AHx
 ID
  01 08 30 >
 EI
Q
endstream
endobj
xref
0 5
0000000000 65535 f 
0000000009 00000 n 
0000000090 00000 n 
0000000155 00000 n 
0000000277 00000 n 
trailer
<<
  /Size 5
  /Root 1 0 R
>>
startxref
418
%%EOF

关于image - PDF 内嵌图像不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33243908/

相关文章:

java.lang.ArrayIndexOutOfBoundsException : -1

android - 如何使用大位图。旋转并插入画廊

java - 从扫描的 PDF 中读取二维码

generics - F# 有通用算术支持吗?

image - Gulp:自动从一张图像生成多张图像以供多重显示?

html - 图片未出现在 Firefox/Chrome 中;在 IE 中正常

python - 如何通过 python 保存 Google pdf 文件?

php - 在 ZF2 中生成 PDF?

c++ - 只有在 header 中定义的函数才会被内联。我错过了什么吗?

在 F# 中与类型参数进行转换