iTextSharp压模包装文字

我正在使用iTextSharp填写一些压模AcroFields .

stamper.AcroFields.SetField("Title", "Lipsum");

我使用Adobe Acrobat X Pro在Illustrator和表单字段中创建了pdf . 问题是虽然文本字段是页面的宽度,但在保存的pdf中,文本包裹宽度的大约三分之一 .

另一个问题是,如果有可能将文本字段autoSize置于高度,或者是一种处理文本溢出的方法 .

回答(1)

2 years ago

1)我想看看PDF . 我怀疑这些田地没有你想象的那么宽 .

2)您可以将字段的字体大小设置为零以启用“自动调整大小”,这在Reader和iText中都有效 . 但是,它的大小与实际的字段大小不同,而不是您认为的大小 .

我猜你在Illustrator中绘制了一个漂亮的表单字段背景,然后在Acrobat Pro上放置了一个字段,但没有调整字段宽度以匹配漂亮的插图画面背景 . 可能是错的,但这是我的预感 .


这是平坦的PDF . 我可以看到原始表格字段仍然完整吗?对不起,我没有更具体 . 尽管如此,我可以通过阅读这篇PDF学到一点:

查看展平字段XObject的边界框及其内部剪切矩形,看起来应该使用大部分页面:

页面宽约600点,高约850英尺 .
扁平场XObject宽约560点,高约100 .

我想知道你的文本中是否有一些非标准的回车字符,因为Acrobat没有选择iText ...

不管怎么说,我想看看那些简洁的PDF . 填充是好的,但不是扁平的 .


好的,看了看模板 . 我没有看到任何会导致线条突破的东西......这让我觉得我的第二个猜测是正确的:新的线条字符 .

查看文本布局代码可能会给我一个提示 . 你的每一行文字都是这样的(例如):

1 0 0 1 2 88.24 Tm  0 g (Die Semmerrolle der l{e4}nge nach zu einer grossen Roulade)Tj
  • n n n n Tm:文本矩阵

  • g:灰色(0克:黑色)

  • (...)Tj:显示文字

这与在iText(以及最新版本[s])的主干中设置文本字段值时的代码路径一致 . 该代码(ColumnText)非常适合正确破坏文本,并在整个地方使用 . 边界框是正确的(如展平PDF的几个位置所示) .

检查你的输入 .