2015-06-05 8 views
0

Я использую инструмент мастера действий в Adobe Acrobat Pro DC. Я хочу использовать «выполнить Javascript», чтобы применить водяной знак к центру страницы PDF, а также имя человека по сторонам и сверху. Я успешно сделал это и вот код.Adobe Acrobat Action Wizard и Javascript

var cMyText = "This PDF has been created for exclusive use for Max Power."; 

this.addWatermarkFromText({ 
    cText: cMyText, 
    nFontSize:9, 
    nHorizAlign:app.constants.align.center, 
    nVertAlign:app.constants.align.top, 
    nVertValue:-10, 
    nOpacity: 0.8, 
}); 

this.addWatermarkFromText({ 
    cText: cMyText, 
    nFontSize: 9, 
    nRotation: 90, 
    nHorizAlign: app.constants.align.left, 
    nHorizValue: 10, 
    nVertAlign: app.constants.align.center, 
    nOpacity: 0.8, 
}); 

this.addWatermarkFromText({ 
    cText: cMyText, 
    nFontSize:9, 
    nRotation:-90, 
    nHorizAlign:app.constants.align.right, 
    nHorizValue:-10, 
    nVertAlign:app.constants.align.center, 
    nOpacity: 0.8, 
}); 

this.addWatermarkFromText({ 
    cText: "DRAFT COPY", 
    nTextAlign:app.constants.align.center, 
    cFont: "Helvetica-Bold", 
    nFontSize:80, 
    aColor: ["RGB", 0, 0, 1], 
    nRotation:45, 
    nOpacity: 0.2, 
}); 

Теперь вот моя проблема. Линия ...

«Этот PDF-код был создан для исключительного использования для Max Power.";

будет меняться каждый раз, когда я запускаю действие. Я не хочу рисковать тем, что пользователь испортил JavaScript, отредактировав его непосредственно в коде. Я хочу иметь окно ввода, которое предложит пользователю отредактировать эту строку до того, как действие будет выполнено. Это возможно? Пожалуйста помоги! Благодарю.

ответ

0

Спасибо! Следующий код сделал трюк!

var dialogTitle = "Please Complete"; 

var string1 = "This PDF has been created for exclusive use for"; 
var defaultAnswer = ""; 

var string2 = app.response("Add PDF recipients NAME or COMPANY", 
dialogTitle, defaultAnswer); 

var string3 = app.response("Add PDF recipients ADDRESS", 
dialogTitle, defaultAnswer); 

var cMyText = string1 +"\n"+ string2 +" "+ string3; 
var string4 = string2 +"\n"+ string3; 

this.addWatermarkFromText({ 
    cText: cMyText, 
    nFontSize:9, 
    nHorizAlign:app.constants.align.center, 
    nVertAlign:app.constants.align.top, 
    nVertValue:-10, 
    nOpacity: 0.8, 
}); 

this.addWatermarkFromText({ 
    cText: cMyText, 
    nFontSize:9, 
    nRotation:90, 
    nHorizAlign:app.constants.align.left, 
    nHorizValue:10, 
    nVertAlign:app.constants.align.center, 
    nOpacity: 0.8, 
}); 

this.addWatermarkFromText({ 
    cText: cMyText, 
    nFontSize:9, 
    nRotation:-90, 
    nHorizAlign:app.constants.align.right, 
    nHorizValue:-10, 
    nVertAlign:app.constants.align.center, 
    nOpacity: 0.8, 
}); 

this.addWatermarkFromText({ 
    cText: string4, 
    nTextAlign:app.constants.align.center, 
    cFont: "Helvetica-Bold", 
    nFontSize:36, 
    aColor: ["RGB", 0, 0, 1], 
    nRotation:45, 
    nOpacity: 0.2, 
    bOnTop:false, 
}); 
0

Отъезд app.reponse() в reference.

Что-то вдоль этих линий должно сделать трюк:

var name = app.alert("Please enter name below:"); 

if (name != null) { 
    var cMyText = "This PDF has been created for exclusive use for " + user + "."; 
    ... 

В качестве альтернативы, вы можете поместить папку уровень Javascript файл на компьютере каждого пользователя, с getUser() функции, возвращающей их имя. В зависимости от сетевой среды это может быть или не быть вариантом, но это позволит скриптам уровня документа определять, кто является пользователем.

+0

Спасибо за альтернативное решение. См. Ниже вариант, который я использовал. – Eric

Смежные вопросы