我正在尝试使用FunctionType4(Postscript计算器(的Type1(基于函数的(着色为PDF着色编写自定义函数。以下是我尝试的基础:
...
5 0 obj
<<
/Type /Page
/Parent 1 0 R
/MediaBox [0 0 500 400]
/Resources << /Shading << /Sh1 8 0 R >> >>
/Contents 6 0 R
>>
endobj
6 0 obj %Contents
<<
/Length 37
>>
stream
2 J
0 200 200 200 re
q
W n %clip to 200x200 rectangle
/Sh1 sh %fill with shading
Q
endstream
endobj
7 0 obj %The function itself
<<
/FunctionType 4
/Domain [0 1 0 1]
/Range [0 1 0 1 0 1]
/Length 24
>>
stream
{
pop %pop parameters - I guess these are x, y coordinates (?)
pop
0.5 %half red , green, blue = gray
0.5
0.5
}
endstream
endobj
8 0 obj %The shading
<<
/ShadingType 1
/ColorSpace /DeviceRGB
/Function 7 0 R
>>
endobj
...
我认为这应该使正方形变成200x200灰色。但结果是什么都没有——画布一直是空的(在Adobe PDF阅读器中尝试过(。
有人能告诉我我做错了什么吗?
或者——有人能提供一个这样的PDF的例子——带有自定义着色功能吗?我需要一些开始。(稍后我想使用该功能为我的SWF到PDF转换器实现具有重复模式的径向着色(
我在互联网上没有找到任何与Shading Type 1相关的PDF示例。
我现在发现了问题。
/FunctionType 4
/Domain [0 1 0 1]
我将函数的域设置为0-1,这将裁剪坐标到最大值1。由于某些原因,我认为输入的坐标是0-1。
的修改
/FunctionType 4
/Domain [0 1000 0 1000]
对我有用,矩形是灰色的。