【发布时间】:2014-11-21 19:19:37
【问题描述】:
我正在使用 iTextSharp 来填充一些包含表单的 PDF。这些表单由文本框(以及其他字段类型)组成,如果我在 PDF 阅读器中打开它们,我可以输入任意数量的字符而没有任何限制。但是如果我在一个字段中输入太多字符时打印这样的 PDF 表单,则根本不会打印溢出。
现在我正在寻找一种方法来测量适合某些特定文本框的字符串的最大长度,而不会丢失任何打印数据。我知道理论上我需要做什么,我需要考虑文本框的字体属性来测量字符串的宽度(以像素/点为单位),然后将其与文本框的宽度进行比较(减去它可能具有的任何填充) .但我对 PDF 概念完全陌生,我不知道从哪里开始。有人可以指导我正确的方向吗?
还有一件事,我无法控制 PDF 模板,也无法以任何方式更改它们。我所能做的就是在用户要求平面 PDF 文件时提示您输入的文本不适合该字段!
[更新]
我希望同样的解决方案适用于另一种情况,但似乎我需要在以后包含这个情况,以便将答案引导到正确的方向。
我的 PDF 表单文件中有三个文本框,当我手动填写它们时(使用 PDF 阅读器),我有责任将我的输入分成三个。这方面的一个例子是地址字段的三行。如果我正在设计表单,我会使用多行文本字段,以便地址自动换行,但不幸的是,我只是将表单交给了,因为它们受密码保护,我所能做的就是找到合适的点来拆分输入字符串以在三个字段中输入它们。
【问题讨论】:
标签: pdf itextsharp itext