【问题标题】:Drawing boundary of shape entirely inside the shape in PDF在 PDF 中完全在形状内绘制形状边界
【发布时间】:2020-05-10 21:16:21
【问题描述】:

我在 PDF 中使用路径构造来绘制一个形状,比如一个矩形。例如:

0 0 m 0 1 l 1 1 l 1 0 l 0 0 l B

但是现在,连接 (0,0) 和 (0,1) 的线的中心是 (0,0) 和 (0,1)。因此,边界“离开”矩形线宽的一半。

有没有参数,让边界完全画在矩形里面?

【问题讨论】:

  • 使用该矩形大小的剪辑路径。
  • 您能否张贴您看到的图片并清楚地指出您认为的错误。
  • 那是一个很小的矩形。由于默认线宽无论如何都是 1,您是否尝试过仅绘制一个更大的矩形?此外,除非您的 MediaBox 和 CropBox 是非默认的,否则您的描边矩形的左边缘和下边缘会被截断。说“72 72 m 72 82 l 82 82 l 82 72 l 72 72 l B”
  • 您也可能违反了缠绕规则。尝试使用“B*”而不是“B”来从非零绕组切换到奇偶绕组。

标签: pdf boundary


【解决方案1】:

正如评论中已经提到的,使用该矩形大小的剪辑路径是一种选择。

由于您的路径仅包含有问题的矩形,您可以很容易地做到这一点,只需在路径绘制操作符B之前添加剪切路径操作符W

0 0 m 0 1 l 1 1 l 1 0 l 0 0 l W B

如果您不想保留剪辑路径,请将所有这些都包含在 save-state/restore-state 中

q
0 0 m 0 1 l 1 1 l 1 0 l 0 0 l W B
Q

【讨论】:

    【解决方案2】:

    这只是画线操作的正常行为。

    线条的粗细均匀分布到线条的两侧。因此,如果您有一个从 (0,0) 到 (10,0) 的 10pt 思考线并使用对接帽线样式,您将拥有一个填充的矩形区域,角为 (0,-5)、(10,-5 ), (10,5), (0,5)。

    看看this PDF file - 你可以在第二行第二列看到这个效果。内白线和外黑线具有相同的起点和终点。

    因此,如果您想将所有内容都放在该矩形内,可以使用 mkl 所说的剪辑路径或计算必要的端点,同时考虑线宽和线帽/连接样式。

    【讨论】:

      猜你喜欢
      • 2012-07-09
      • 2023-02-16
      • 1970-01-01
      • 2011-06-05
      • 2012-11-21
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多