剪切路径似乎在文本之外

问题描述:

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

我想有:

What I wanted to have

我得到了什么:

What I got

+0

剪切只发生在'ET'。在'BT'和'ET'之间''re'和'F'严格地说是无效的。 – mkl

看一看规范ISO 32000-1

剪辑模式的行为需要进一步解释。如果在文本渲染模式设置为裁剪模式时执行了BT运算符,或者在文本对象内将其设置为裁剪模式,那么雕纹轮廓将开始累积。字形应累加,直到文本对象由操作员结束为止;在该点之前,文本再现模式不应该变回非剪切模式。

(第9.3.6文本呈现模式

在您的样品不等到ET的剪切路径才能生效。所以,当您绘制红色矩形时,您的特殊剪切路径尚未生效。


此外您的操作顺序实际上是无效的!在文本对象中不允许路径构建和路径绘制操作符(即,您的0 0 200 20 reF)都不允许。 图9 - 显卡在specification对象

Figure 9 – Graphics Objects

因此,严格地说PDF查看器有更好的拒绝所有绘制内容流。

+1

@Jongware * OP需要绘制文本两次* - 他试图使用文本渲染模式4来完成**填充文本并添加到路径进行剪切**,然后使用剪切到的长方形覆盖较低的文本一半文本路径。不幸的是,在错误的操作员顺序,但。 – mkl

+0

啊,文本路径是剪辑区域,而不是(如我所想)矩形。嗯。我的方法看起来好简单 – usr2564301

+0

Erg - 糟糕的错误。非常感谢,mkl! – Christian