簡體   English   中英

在Adobe Acrobat XI中使用JavaScript修改PDF字段值

[英]Using JavaScript in Adobe Acrobat XI to modify a PDF field value

我在Adobe Acrobat XI中編輯的PDF中有兩個字段:“ Text2#0”和“ Text2#1”。

我試圖做到這一點,所以當您在第二個字段(Text2#1)中輸入文本時,它會顯示在第一個字段(Text2#0)中,但會被包圍在一對星號之間(這是用於條形碼生成器的) 。

在“操作”選項卡上的Text2#1的“文本字段屬性”窗口中,我將MouseUp觸發器設置為運行JavaScript:

var barcodeField = this.getField("Text2#0");
var barcodeLength = barcodeField.length;


if( barcodeField.charAt(0) != "*" ){
  barcodeField = "*" + barcodeField;     
};

if( barcodeField.charAt(barcodeLength - 1) != "*" ){
  barcodeField = barcodeField + "*";
};  

但是,永遠不會添加封裝星號。 我想念什么?

謝謝閱讀!

編輯:

感謝Max在下面的回答。 我所做的就是更改他提到的字段名稱(條形碼字段更改為“條形碼”,文本字段更改為“ Text2”),然后我創建了“模糊”觸發器(當用戶停止與之交互時)字段)與Text2相關聯。 這是觸發運行的JS:

getField("barcode").value = getField("Text2").valueAsString;

var barcodeField = this.getField("barcode");
var textField = this.getField("Text2");

barcodeField.value = "*" + textField.value + "*";

不加星號也就不足為奇了。

條形碼字段變量是字段對象,並且字段對象不能添加字符串。

為了對字段的內容進行處理,您將需要Field對象的value屬性。

也就是說,您的行必須如下所示:

barcodeField.value = "*" + barcodeField.value ;

但是,還有一個更根本的問題。

字段名稱的后綴#1#2是該字段的小部件編號。 在Acrobat JavaScript中,該字段的關鍵字是其名稱。 當您有多個具有相同名稱的字段時,它們將以小部件編號區分。

一些字段對象屬性適用於該字段(所有小部件都相同),另一些屬性適用於該小部件(每個小部件都不同)。 例如, rect應用於小部件。 但是value適用於該字段,這意味着所有具有該名稱的字段都顯示相同。

因此,如果要使一個字段顯示星號,而又不顯示星號,則必須使用兩個字段,並且使用不同的字段名稱。

該示例可能如下所示:

var bcf = this.getField("barcodeField") ; // has plain value
var bcfa = this.getField("barcodeFieldA") ; // has value with asterisks

bcfa.value = "*" + bcf.value + "*" ;

如果將此代碼添加到bcfa字段的Calculate事件中,則必須將最后一行更改為

event.value = "*" + bcf.value + "*" ;

那應該做到的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM