最近我想构建一个应该有文本剪辑的PDF文档:使用 4 Tr 我试着将文本定义为剪切区域。但是,当我想用红色填充文本的下半部分时,结果是相反的。
有谁知道,为什么?
感谢您的回答!
stream
BT
4 8 Td
0.8 0.2 0.7 rg % Writing lila.
4 Tr % Fill & Use text as clipping area.
/TR 32 Tf
(Hallo Welt) Tj
1 0 0 rg % Fill in red.
0 0 200 20 re F % <- Mistake?
ET
我想拥有的东西:
我得到了什么:
答案 0 :(得分:2)
查看规范ISO 32000-1:
剪辑模式的行为需要进一步说明。如果在文本渲染模式设置为剪切模式时执行 BT 运算符,或者如果在文本对象中将其设置为剪切模式,则雕文轮廓将开始累积。字形应累积,直到文本对象被 ET 运算符结束;在该点之前,文本渲染模式不应更改回非滑动模式。
(第9.3.6节文字渲染模式)
在您的示例中,您不要等到剪切路径的 ET 才能生效。因此,当您绘制红色矩形时,您的特殊剪切路径尚未生效。
此外,您的操作顺序实际上无效!在文本对象中,路径构造和路径绘制操作符(即,0 0 200 20 re
和F
都不允许)都不允许,参见图9 - specification中的图形对象:
因此,严格来说,您的PDF查看器最好拒绝绘制您的内容流。