剪切路径似乎在文本之外

Clipping path seems to be outside of text

最近我想构建一个应该有文本裁剪的 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

我想要的:

我得到的:

查看规范ISO 32000-1:

The behaviour of the clipping modes requires further explanation. Glyph outlines shall begin accumulating if a BT operator is executed while the text rendering mode is set to a clipping mode or if it is set to a clipping mode within a text object. Glyphs shall accumulate until the text object is ended by an ET operator; the text rendering mode shall not be changed back to a nonclipping mode before that point.

(section 9.3.6 Text Rendering Mode )

在您的示例中,您不会等到 ET 后剪切路径才会生效。因此,当您绘制红色矩形时,您的特殊剪切路径尚未生效。


而且你的操作顺序居然是无效的!路径构造和路径绘制运算符(即你的 0 0 200 20 re 和你的 F)都不允许在文本对象内,参见。 图 9 – specification 中的图形对象:

因此,严格来说,您的 PDF 查看器最好完全拒绝绘制您的内容流。