2011-11-01 21 views
0

我如何让文本从一个acrofield包装到下一个?我有我们的客户给我们的Adobe PDF文档。它有一个顶部的acro字段(全部使用相同的名称)。他们希望文本在到达行尾时从一个包装到另一个包装。我看到的所有其他例子都不涉及填充包装的acro字段。请帮忙!如何将文本换行到iTextSharp中的下一个acrofield?

   // loop through disabilities and display them 
       foreach (var disability in formNature.Disabilities) 
       { 
        fields.SetField("EVALUATION", disability.PrimaryDisabilityName + "; "); 
       } 

在理论上这应该遍历他们已经在网络表单中输入并接连而文字环绕显示出来一个,当它到达每一行的末尾都士。但相反,它只显示一个项目。

回答

0

不幸的是,这不是一个完整的答案。

首先,当您拨打SetField()时,您正在清除该字段的当前内容并将其替换为新值。当在一个循环中完成时,只有最后一个值将被存储。你需要做的是循环每个值并将它们连接成一个大的字符串。

string buf = ''; 
foreach (var disability in formNature.Disabilities) 
{ 
    buf += disability.PrimaryDisabilityName + "; "; 
} 
buf = buf.Trim(); 

二,PDF标准到我所知,不支持字段链接溢出这是你在找什么。我知道完成你正在尝试的唯一方法是实际测量字符串并将它们与字段的宽度进行比较,并根据需要截断它们。为此,您需要找到给定字段使用的字体,从中创建一个BaseFont并使用它来测量字符串。然后将其与字段的矩形进行比较,并只使用“适合”该字段的字符。根据需要重复。

所有的说法,我会真的真的推荐,你只需编辑PDF并用一个支持多行的大字段替换多个字段。你的生活将会更加简单。

+0

是的,PDF不是用于Word Publishing,而是为最终交付/便携性进行了优化。你是程序员是模拟的文字发布软件。我自己也有同样的问题:使用SetField,所以我将需要使用PdfCell来测量字符串(不添加到文档中)以检测何时发生溢出。 – Todd

相关问题