如何将文本从一个acrofield包装到下一个?我有一个adobe pdf doc,我们的客户给了我们。它有一个acro字段一个在另一个上面(所有具有相同的名称)。他们希望文本在到达行尾时从一个文本换行到另一个文本。我在那里看到的所有其他示例都没有涉及填充包装的acro字段。请帮忙!
// loop through disabilities and display them
foreach (var disability in formNature.Disabilities)
{
fields.SetField("EVALUATION", disability.PrimaryDisabilityName + "; ");
}
理论上,这应该遍历他们在网络表单上输入的所有障碍,并在文本包装到达每行结束时一个接一个地显示它们。但相反,它只在一个字段中显示一个项目。
答案 0 :(得分:0)
不幸的是,这不是一个完整的答案。
首先,当您致电SetField()
时,您正在删除该字段的当前内容并将其替换为新值。在循环中完成时,只会存储最后一个值。你需要做的是遍历每个值并将它们连接成一个大字符串。
string buf = '';
foreach (var disability in formNature.Disabilities)
{
buf += disability.PrimaryDisabilityName + "; ";
}
buf = buf.Trim();
其次,据我所知,PDF标准不支持将溢出字段链接到您正在寻找的内容。我知道要完成你正在尝试的唯一方法是实际测量字符串并将它们与字段的宽度进行比较并根据需要截断它们。为此,您需要找到用于给定字段的字体,从中创建BaseFont
并使用它来测量字符串。然后将其与字段的矩形进行比较,并仅使用“适合”该字段的字符。根据需要重复。
所有人都说,我会真的非常推荐你只需编辑PDF并用一个支持多行的大字段替换多个字段。你的生活将变得更加容易。