pdf - 如何在iTextSharp中绘制水平线?

标签 pdf itext

我正在创建一个标签,其左侧有一个地址,右侧有另一个地址。我只想在中间创建一条线来将它们分开。因此该线需要一直延伸到标签的长度(从 270 到 0)

我正在使用iTextSharp.text.pdf.PdfContentByte cb = writer.DirectContent;

例如显示我使用的地址:

cb.ShowTextAligned(int.Parse("50"), Company.Current.Address1, 270, 260, 270);

标签为横向,因此旋转设置为 270

最佳答案

如果您使用高级方法(使用 document.Add()),则使用 separator画线。很奇怪你不使用高级方法。您声称使用 showTextAligned() 是因为您需要横向工作,但如果您需要横向工作,为什么不直接以横向方式定义页面呢?

您使用的是低级方法(使用 showTextAligned()),因此您必须使用路径构造和路径绘制运算符和操作数。所有这些运算符和操作数均在chapter 14 of my book中进行了解释。 。此链接向您显示 Java 中的示例,但如果向下滚动,您将找到指向 .cs 文件的链接。

如果您有一个 PdfContentByte 对象 cb,您可以像这样画一条线:

cb.MoveTo(x1, y1);
cb.LineTo(x2, y2);
cb.Stroke();

x1y1x2y2 的值取决于您用于绘制的坐标你的文字。在您的情况下,您开始在坐标 x = 270, y = 260 处写入文本。我将 x1 定义为 270,将 y1 定义为 260 - bf.GetWidthPoint(Company.Current.Address1)

请注意,这个参数是错误的:int.Parse("50")showTextAligned() 方法的第一个参数应该是有效的对齐方式。 50 不是有效的对齐值。您应该将其替换为 Element.ALIGN_LEFTElement.ALIGN_RIGHTElement.ALIGN_CENTER。显然,如果更改文本的对齐方式,则必须更改 y 的值。

关于pdf - 如何在iTextSharp中绘制水平线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37387918/

相关文章:

c# - 让 PdfStamper 与 MemoryStreams 一起工作(c#,itextsharp)

java - 如何在java iText PDF中的多个页面上创建复选框?

c# - 无法使用 iTextSharp 应用样式

javascript - 如何在 JavaScript 中创建 pdf 的链接?

c# - 在浏览器中打开 PDF 文件而不是下载 pdf 文件

python - 删除长度超过 x 个字符的字符串的所有副本(正则表达式?)

java - 如何使用 iText 确定选择了哪个单选按钮?

java - dofilter 没有给出 pdf 作为响应输出

pdf - 我们如何使用 ghostscript 将 2 个以上的 pdf 文件合并为单页(A4)PDF?

pdf - 如何在IE中显示base64编码的pdf?