Я создаю интерактивный PDF с JS в проекте, который требует языковой локализации, поэтому в JS есть куча строк с неанглийскими символами.
Похоже, что Acrobat прекрасно это поддерживает, пока не подключится внешний редактор JS, и в этом случае Acrobat повреждает код, заменяя неанглийские символы мусором (см. Пример проверки концепции ниже).
Зачем вообще использовать внешний редактор?Для небольших проектов вы можете вставить свой код из предпочитаемого вами редактора во встроенный JS-редактор Acrobat, но как только ваш код превысит определенный лимит символов, Acrobat требует, чтобы вы использовали исключительно внешний редактор.У меня не было проблем с этой конфигурацией, когда код и строки состоят из английских символов.
Если у кого-нибудь есть какие-либо идеи о том, как я могу это исправить, я был бы очень признателен.
Код, полностью поддерживаемый в Acrobat:
/*---------- Begin PDF Document Script ----------*/
function Open()
{}
/*---------- Begin VARIABLE declaration ----------*/
// Field to variable connections
var dtlanguage = this.getField("dtlanguage");
var gVis = {
gVisSetLanguage : function () {
if (event.target.name == 'English') {
dtlanguage.value = 'Hello there.';
dtlanguage.textFont = "BentonSans-Light";
}
else if (event.target.name == 'Spanish') {
dtlanguage.value = '¡Holå!';
dtlanguage.textFont = "BentonSans-Light";
}
else if (event.target.name == 'Japanese') {
dtlanguage.value = '資かけっ入迫';
dtlanguage.textFont = "HiraKakuPro-W3";
}
}
}
Код, сохраненный во внутреннем редакторе Acrobat, а затем открытый во внешнем редакторе:
/*---------- Begin PDF Document Script ----------*/
function Open()
{}
/*---------- Begin VARIABLE declaration ----------*/
// Field to variable connections
var dtlanguage = this.getField("dtlanguage");
var gVis = {
gVisSetLanguage : function () {
if (event.target.name == 'English') {
dtlanguage.value = 'Hello there.';
dtlanguage.textFont = "BentonSans-Light";
}
else if (event.target.name == 'Spanish') {
dtlanguage.value = '�Hol�!'; // <--------- HERE
dtlanguage.textFont = "BentonSans-Light";
}
else if (event.target.name == 'Japanese') {
dtlanguage.value = '......'; // <-------- HERE
dtlanguage.textFont = "HiraKakuPro-W3";
}
}
}