【问题标题】:Clipping path seems to be outside of text剪切路径似乎在文本之外
【发布时间】:2016-01-03 10:23:15
【问题描述】:

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

我想要的:

我得到了什么:

【问题讨论】:

  • 剪辑只发生在ETreF 严格来说在BTET 之间是无效的。

标签: pdf clipping


【解决方案1】:

看看规范ISO 32000-1

剪辑模式的行为需要进一步解释。如果在文本渲染模式设置为剪切模式或在文本对象内设置为剪切模式时执行 BT 运算符,则字形轮廓将开始累积。字形将累积直到文本对象被 ET 运算符结束;在此之前,文本呈现模式不得更改回非剪辑模式。

(第 9.3.6 节 文本渲染模式

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


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

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

【讨论】:

  • @Jongware OP 需要绘制文本两次 - 他尝试使用文本渲染模式 4 来填充文本并添加到路径以进行剪切 b> 然后使用剪切到该文本路径的矩形覆盖下半部分文本。不幸的是,操作员顺序错误。
  • 啊,文本路径是剪辑区域,而不是(我想的)矩形。嗯嗯。我的方法似乎容易多了?
  • Erg - 严重错误。非常感谢你,mkl!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
相关资源
最近更新 更多