我正在创建一个标签,左侧有地址,右侧有另一个地址。我只是想在中间创建一条线来分隔它们。因此,该行需要一直到标签的长度(从270到0)
我正在使用iTextSharp.text.pdf.PdfContentByte cb = writer.DirectContent;
所以例如显示我使用的地址:
cb.ShowTextAligned(int.Parse("50"), Company.Current.Address1, 270, 260, 270);
标签处于横向状态,因此旋转设置为270
答案 0 :(得分:3)
如果您使用的是高级方法(使用document.Add()
),则使用separator绘制线条。你没有使用高级方法,这很奇怪。您声称自己使用showTextAligned()
,因为您需要在横向工作,但如果您需要在横向工作,为什么不直接定义您的网页?
您正在使用低级方法(使用showTextAligned()
),因此您必须使用路径构造和路径绘制运算符和操作数。所有这些运算符和操作数都在chapter 14 of my book中解释。此链接向您显示Java中的示例,但如果向下滚动,您将找到.cs
文件的链接。
如果你有一个PdfContentByte
对象cb
,你可以画一条这样的一行:
cb.MoveTo(x1, y1);
cb.LineTo(x2, y2);
cb.Stroke();
x1
,y1
和x2
,y2
的值取决于您用于绘制文字的坐标。在您的情况下,您开始在坐标x = 270, y = 260
处撰写文本。我将x1
定义为270
,将y1
定义为260 - bf.GetWidthPoint(Company.Current.Address1)
。
请注意,此参数错误:int.Parse("50")
。 showTextAligned()
方法的第一个参数应该是有效的对齐方式。 50
不是有效的对齐值。您应该将其替换为Element.ALIGN_LEFT
,Element.ALIGN_RIGHT
或Element.ALIGN_CENTER
。显然,如果更改文字的对齐方式,则必须更改y
的值。