首页 > 解决方案 > Adobe Acrobat 的嵌入式 Javascript 代码:TypeError:this.getField 不是函数

问题描述

因此,我希望在 Document Open 中运行一些 JavaScript 代码,因此我将 .js 文件放入了 Acrobat\JavaScripts 文件夹(在 Program Files 中)。我正在尝试运行以下代码:

function ChangeFont()
{
    var nNumFields = this.numFields; 
    console.println("There are " + nNumFields + " in this document."); 
    var cFieldName; var oField; 
    for(i = 0; i < nNumFields; i++) 
    {
        cFieldName = this.getNthFieldName(i); 
        oField = this.getField(cFieldName);
        oField.textFont = "PTSans";  
    }
}

ChangeFont()

打开 PDF 会运行我插入到同一文件夹中的其他代码,但不是这个(因为字体不会改变)。当手动将此代码粘贴到 Acrobat JavaScript 调试器中时,选择所有代码并按 Ctrl+Enter,它可以完美运行。那么为什么它不能在 Document open 上工作呢?

我试图通过制作一个单独的 .js 来隔离问题,该 .js 选择一个特定的字段并更改它的字体,如下所示:

var f = this.getField("myField");
f.textFont = "PTSans";

将 test.js 放入 JavaScripts 文件夹并使用 Acrobat 打开 PDF 文档后,我立即收到以下错误:

“TypeError:“this.getField”不是函数。”

同样,我在调试器控制台中手动运行它,它运行良好。

这里发生了什么?我不认为我使用的是 LiveCycle Designer 界面,它只是 Adob​​e Acrobat 10。

编辑:目的是在打开文档时使所有字段都具有某种字体。

标签: javascriptacrobat

解决方案


文件夹级别的脚本在 Acrobat 加载时但在文档打开之前运行。numFields 属性属于尚不存在的 Doc 对象。只需删除最后一行,您就可以从文档中的按钮运行该功能。


推荐阅读