繁体   English   中英

如何重写代码,以便我可以在Acrobat上运行它?

[英]How to rewrite a code, so i can run it on Acrobat?

我想在.pdf文件中创建条形码。 我在网上搜索并找到以下javascript代码,但这在Adobe Acrobat DC中似乎不起作用。 那么,如何才能重写此代码,以使该代码在Adobe Acrobat DC上运行?

var rawData = this.getField("Sendungeins").valueAsString;
var out = this.getField("Barcodeeins"); 

function getBarcode(rawData) { 

var offset = 32; 
var highAscii = 18; 
var newCodeString = new Array(rawData.length + 3);

newCodeString[0] = offset + highAscii + 104; 
var total = 104; 

for(var stringCounter = 0 ; stringCounter < rawData.length ; stringCounter++) { 

var character = rawData.substr(stringCounter, 1); 
var ASCIIValue = character.charCodeAt(0); 
var checkDigit = ((ASCIIValue - offset) * (stringCounter + 1)); 
total += checkDigit; 
newCodeString[stringCounter + 1] = ASCIIValue; } 

var check = total % 103; 
var holder = 0; 

if(check + offset >= 127) { holder = check + offset + highAscii; } 
else { holder = check + offset; } 
newCodeString[newCodeString.length - 2] = holder; 
holder = 106 + offset + highAscii;
newCodeString[newCodeString.length - 1] = holder; 

for(var rCounter = 0; rCounter < newCodeString.length ; rCounter++) {
if(newCodeString[rCounter] == 32) { newCodeString[rCounter] = 128; } }
return getBarcodeText(newCodeString);
}
function getBarcodeText(codeString) { 
var returnVal = "<p align = \"center\"style=\"font-size:16.0pt;mso-bidi-font-size:16.0pt;font-family:Code128bWinLarge\">";
for(var counter = 0 ; counter < codeString.length ; counter++) {
var intValue = codeString[counter]; returnVal += "&#" + parseInt(intValue); } returnVal += "</P>"; 
return returnVal;
}

out.value = writeIn(getBarcode(rawData));

函数getBarcodeText(codeString)的行为是绝对正确的。 但是,为HTML表单设置了returnVal变量的初始值。

在PDF中,您可以在“字段属性”对话框中设置字段(文本)属性。 也就是说,您可以像这样初始化变量:

var returnVal = "" ;

在循环中,HTML脚本添加(十进制)字符代码,以“&#”开头。 此构造在Acrobat JavaScript中不可用。 您可以改用fromCharCode()方法来获取字符,然后使用相应的字体正确显示该字符。

可能需要进一步修改,但这将使您更接近。 您可能出于调试目的,在app.alert()对话框中显示值,或使用console.println()将其写入控制台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM