我正在尝试在 PDF 中创建线性颜色渐变。经过一番努力,我能够在 Chrome 中渲染一个填充渐变的矩形,但是 Mozilla 只渲染一个黑色矩形,而 Acrobat reader 完全是空白的。
我很确定 Chrome 解释了源代码错误,但我找不到问题所在以及如何在 Acrobat reader 中渲染渐变。
请考虑下面的源代码。有人能看出它出了什么问题吗? (是的,我很清楚函数中有一个空的 /Bounds 属性,但我已经测试了没有它的代码,但没有任何效果。)
如果您想知道,代码是使用 PHP 的 Zend PDF 库和我的自定义渐变方法生成的。它不再被维护,但它是我们在工作中使用的工具,所以我现在坚持使用它。这也是为什么PDF只有1.4版本的原因。
这是完整的源代码
%PDF-1.4 %
1 0 obj
<</Type /Catalog /Version /1.4 /Pages 2 0 R /Names 5 0 R >>
endobj
2 0 obj
<</Type /Pages /Kids [8 0 R ] /Count 1 >>
endobj
3 0 obj
[]
endobj
4 0 obj
<</Names 3 0 R >>
endobj
5 0 obj
<</Dests 7 0 R >>
endobj
6 0 obj
[]
endobj
7 0 obj
<</Names 6 0 R >>
endobj
8 0 obj
<</Type /Page /LastModified (D:20240226231224+01'00') /Resources <</Pattern <</P1 10 0 R >> /ProcSet [/PDF ] >> /MediaBox [0 0 595 842 ]
/Contents [9 0 R ] /Parent 2 0 R >>
endobj
9 0 obj
<</Length 41 >>
stream
/Pattern sc
/P1 scn
30 300 370 450 re
f
endstream
endobj
10 0 obj
<</Type /Pattern
/PatternType 2
/Shading
<</ShadingType 2
/ColorSpace /DeviceRGB
/Domain [0 1 ]
/Coords [30 750 30 300 ]
/Function
<</FunctionType 3
/Domain [0 1 ]
/Bounds []
/Encode [1 0 ]
/Functions [
<</FunctionType 2
/Domain [0 1 ]
/C0 [0 0.733 0 ]
/C1 [0 0 0 ]
/N 1
>>
]
>>
/Extend [true true ]
>>
/Matrix [1 0 0 1 0 0 ]
>>
endobj
xref
0 11
0000000000 65535 f
0000000015 00000 n
0000000091 00000 n
0000000149 00000 n
0000000168 00000 n
0000000202 00000 n
0000000236 00000 n
0000000255 00000 n
0000000289 00000 n
0000000479 00000 n
0000000570 00000 n
trailer
<</ID [<38363664323065366363363538333838> <39323837366165306561666364386532> ] /Size 11 /Root 1 0 R >>
startxref
917
%%EOF
这是可供下载的最终文件。