我正在使用Java框架iText将图像绘制为pdf。我需要绘制指定宽度的线条。类setLineWidth(float width)
中的方法PdfContentByte
应该更改它。然而,无论我传递什么值作为参数,绘制的线总是超薄。
setLineWidth
的javadoc中有以下行:
线宽指定用于描边路径的线条的粗细,并以用户空间单位进行测量。
我不知道什么是“空间单位”。 iText中的其他所有内容似乎都是以点(约1/72英寸)为单位进行测量的。我找不到任何关于那些“空间单位”以及如何改变它们的参考。
代码:
to.setLineWidth(thickness);
to.moveTo(x, y);
to.lineTo(x + 100, y + 100);
变量to
包含PdfContentByte
的实例。
答案 0 :(得分:9)
解决。 lineTo调用后没有中风方法调用。这就是为什么它在调用stoke方法之前使用另一个线宽设置的原因。 正确的代码如下所示:
to.setLineWidth(thickness);
to.moveTo(x, y);
to.lineTo(x + 100, y + 100);
to.stroke();