[英]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.