在多行表单字段中将文本与顶部对齐,以便动态生成PDF

时间:2017-12-09 10:56:14

标签: javascript forms pdf pdf-generation

我有一个PDF表单,文本在中间对齐多行字段,我正在寻找一个脚本,在打开文件时将执行该脚本,以便将这些文本与顶部对齐。

使用此转换器(https://www.idrsolutions.com/online-pdf-to-html5-converter)创建它以生成PDF格式的HTML版本。然后有一个函数将它转换回PDF。

例如:https://files.idrsolutions.com/Examples/FDFForms/CVData/form.html

您可以输入一些文字,然后点击保存图标以生成PDF。

以下是生成的文件:https://devcn.000webhostapp.com/temp/sampleAlign.pdf

在生成的PDF中,多行表单字段中显示的文本与中间对齐。如果您使用更改对文本进行编辑,则将其与顶部对齐。此外,如果您选择字段属性并更改多行复选框取消选择并再次选择它,则文本也会与顶部对齐。想以某种方式自动化,以便当用户打开PDF时,文本与顶部对齐。

1 个答案:

答案 0 :(得分:0)

首先,除非将字段设置为允许富文本,并且用户将字段定义为将文本垂直对齐到中间,否则Acrobat中的多行文本字段始终对齐到顶部;没有办法以编程方式在典型的PDF字段中定义垂直对齐中心,并让它坚持用户编辑。

首次打开文件时看到的是转换器生成的字段外观。您可以在文档级别添加一个脚本来切换“延迟”属性,这将导致外观由查看器重新生成。您可以将其添加到文档级脚本中,以便在首次打开文件时运行它。请参阅下面的代码和警告。

nFields = this.numFields;
for (var i = 0; i < nFields; i++) {
    var f = this.getField(this.getNthFieldName(i));
    f.delay = true;
    f.delay = false
}

但是,这只能在支持JavaScript的查看器中运行,可以像Acrobat和Reader以及其他一些编辑PDF。当我选择您的链接时,它首先在Chrome中打开,但不会执行JavaScript。不幸的是,现在大多数浏览器都内置了非javascript功能的查看器,因此用户打开文件第一次并让脚本运行的可能性很低。您需要在转换过程中修复外观,而不是在查看器中。

要做到这一点,要么预处理HTML,以便转换器生成的外观与生成的PDF字段的属性匹配,或说服IDR更新其软件以创建反映生成的字段的属性,而不是HTML字段源的属性。