iTextSharp压模包装文字

时间:2011-03-29 10:48:40

标签: pdf-generation itextsharp

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

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

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

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

1 个答案:

答案 0 :(得分:3)

1)我想看看PDF。我怀疑这些领域并不像你想象的那么宽。

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

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


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

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

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

我想知道你的文字中是否有一些非标准的回车字符是由Acrobat提取的,而Acrobat没有......

无论如何,我希望看到简洁的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:text matrix
  • g:灰色(0克:黑色)
  • (...)Tj:show text

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

检查您的输入。