2015-10-20 82 views
1

我在pdf流中定義了一幅圖像。它的工作原理正確的表明了我一個紅色的4像素的調色板:PDF inline圖像不起作用

%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 
... 

當我使用圖像屬性沒有縮寫,已經有一個空白頁面。

有沒有人有一個想法可能是什麼問題?

謝謝你的任何提示和幫助!

回答

0

好的,最近兩天我一遍又一遍地讀了規範。但這是值得的。

有兩個錯誤。只有他們兩人的更正給了我我想要的結果...

首先我沒有結束ID和ED之間的ASCIIHexDecodeFilter部分。規範說:「右尖括號字符(>)表示EOD。」如果使用ASCIIHexDecodeFilter過濾完整流,則Adobe 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