2013-12-05 6 views
0

Мне нужно реализовать форму в PDF, которая позволяет мне иметь «дату печати» при печати файла. На бумагеПоворот динамической формы в файле PDF на каждой странице

версия файла Я хочу, чтобы дата печати находилась в исходном PDF-файле, она должна быть скрыта. Чтобы сделать это, я хочу добавить

JavaScript к PDF.

Моя проблема в том, что я не могу повернуть текст во всех формах.

Это процедура я следую по Acrobat 9 Professional:

1) Я хожу в "дополнительно-> Документ Processing-> Документ JavaScript", и я добавить JavaScript под названием "формы" следующим образом:

function forms() 
{ 
var inch = 72; 

for (var p = 0; p < this.numPages; p++) { 

    // create rectangle quads for field 
    var aRect = this.getPageBox({nPage: p}); 
    aRect[0] = 0.3*inch; 
    aRect[1] = 10.85*inch; 
    aRect[2] = aRect[0]+24; 
    aRect[3] = 0.85*inch; 



    // now construct text field to fill with date information 
    var f   = this.addField("PrintField","text",p,aRect); 
    f.delay  = true; 
    f.textSize = 10; 
    f.textFont = font.HelvB; 
    f.textColor = color.black; 
    f.alignment = "center"; 
    f.readonly = true; 
    f.print  = true; 
    f.hidden  = true; 
    f.delay  = false; 
    f.rotation = 90; 
} 
} 
forms() 

2) После того, как я иду в "дополнительно-> Document Processing-> установить действия документа" и я установить действие документа "Документ будет

Print", как:

var f = this.getField("PrintField"); 
f.hidden = false; 
var d = new Date(); 
var year = d.getYear()+1900; 
var mins = d.getMinutes(); 
if (mins < 10) {mins = "0" + mins}; 
//if (d.getHours() >= 12) {mins = mins + " PM";} else {mins = mins + " AM"; } 
f.value = "DATA DI STAMPA "+ (d.getMonth()+1) + "/" + d.getDate() + "/"+ year + " " + d.getHours() + ":" + mins; 

3) После того, как я иду в "дополнительно-> Document Processing-> Установить действия документа" и я установил Document действие "Документ ли

Print", как:

var f = this.getField("PrintField"); 
f.value = ""; 
f.hidden = true; 

Выход из первая страница, как показано на следующей картинке:

enter image description here

но OTER страницы вроде как:

enter image description here

Помогите мне сказать, что я делаю неправильно?

Другое дело: если я изменил код JavaScript, сохраните файл pdf и распечатайте файл, который имеет две формы на каждой странице: старый и измененный! Зачем?

Многое спасибо заранее!

ответ

0

Документ JavaScripts выполняется каждый раз, когда открыт документ, но вы не только определяете функцию, но и запускаете ее. Поэтому после сохранения и открытия снова вы получаете 2 набора полей.

Я не понимаю (может быть, вы и нет), почему вы решили создавать поля при каждом открытии документа, а затем спрятать их до печати. Как я вижу, возможности многочисленны, например:

  • вы создаете их один раз с использованием инструментов Acrobat UI;
  • вы запускаете функцию, которая создает их, только один раз через консоль в Acrobat;
  • вы создаете их (установочные значения) на «Будет печать» и удаляете «Печать»;
  • Вы делаете это по-своему, как сейчас, и удаляете поля на закрытии;
  • и т.д.

Теперь о настройке значений полей (при условии, что вы не выбрали третий метод выше). Ваша функция «Печать воли» получает только одно поле на первой странице и устанавливает его значение. Другие остаются пустыми. Вы должны были создать поля с уникальными именами (добавление номера страницы в имя является очевидным способом), а затем повторить все значения с значениями get field, либо переименовывая имена с тем же алгоритмом, либо используя numFields и getNthFieldName.

+0

Я не понял присутствие более чем одного поля, но теперь, когда yoy объяснил, как работает Acrobat, я думаю, что решит свою проблему! Я дам вам знать! СПАСИБО – Azoun

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