【问题标题】:Align text to top in multiline form fields for dynamically generated PDF在动态生成的 PDF 的多行表单字段中将文本与顶部对齐
【发布时间】:2017-12-09 10:56:14
【问题描述】:

我有一个 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 时文本与顶部对齐。

【问题讨论】:

    标签: javascript forms pdf pdf-generation


    【解决方案1】:

    首先,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 的查看器中运行,该查看器可以编辑 PDF,例如 Acrobat 和 Reader 以及其他一些工具。当我选择你的链接时,它首先在 Chrome 中打开,它不执行 JavaScript。不幸的是,现在大多数浏览器都内置了不支持javascript的查看器,因此文件首先被用户打开并运行脚本的可能性很低。您需要在转换过程中修复外观,而不是在查看器中。

    为此,要么对 HTML 进行预处理,以使转换器生成的外观与 生成的 PDF 字段的属性相匹配,要么说服 IDR 更新其软件以创建反映生成的字段的属性,而不是 HTML 字段源的属性。

    【讨论】:

      猜你喜欢
      • 2018-12-17
      • 2017-11-21
      • 1970-01-01
      • 2013-10-31
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 2013-06-17
      • 2017-07-02
      相关资源
      最近更新 更多