Вывод данных в определённом виде

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
576
Реакции
174
Создаю документ, ввожу в форме количество копий (например 4). Хотелось бы, чтобы при печати в форму подставлялось: 1 из 4, 2 из 4, 3 из 4 т.д. При небольшихколичествах можно и ручками, но чаще бывает не менее 30-40 экземпляров.
Возможно ли это?
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Ппереведи
 

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
576
Реакции
174
Перевожу: форма на А4, в поле "Количество коробок" вставляю, например, 4.
При выводе формы должно получиться 4 листа: на первом "Коробок: 1 из 4", на втором "Коробок: 2 из 4" и т.д.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
576
Реакции
174
Думаю, цикл: подставляем 1 и сравниваем с введёным количеством, если меньше или равно - выводим форму, далее 2 т.д.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Бррр
Куда подставляем, как выводим??? '8()'
 

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
576
Реакции
174
подставляем в поле при выводе на печать или в файл
 

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
576
Реакции
174
Его в свойствах поля прописать?
 

Drawer

Участник
Сообщения
1 755
Реакции
775
Его в свойствах поля прописать?
Нет, его в папку со скриптами запхнуть и запускать из меню "Document" (если такого в меню баре твоего акробате нет, замени в скрипте на какое удобно)
Да, один момент :) После ввода в
поле "Количество коробок"
Надо сохранять файл, или добавь еще одну строчку в цикл.
JavaScript:
    while (num++ < cnt) {
        this.insertPages({nPage:this.numPages-1, cPath:templateName });
        this.getField("box_number").value = num;
        this.getField("num_of_boxes").value = cnt;
        this.flattenPages();
    };
 
  • Спасибо
Реакции: mnemonix

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
576
Реакции
174
Отлично, буду разбираться, сегодня ещё переезд в новый офис)
 

mnemonix

ॐ मणि पद्मे हूँ
Топикстартер
Сообщения
576
Реакции
174
Заработало! 'dans))'
 

Charles Schreiber

@vectormapper
Сообщения
81
Реакции
2
Всем привет. Аналогичная (чуть более сложная) задача.
Есть файл (форма) ПДФ, в ней три одинаковых (с одним именем) поля.
Что требуется:
1. Акробат открывает исходный файл,
2. Акробат находит поля формы
3. Подцепляет из списка (или таблицы) значения (как правило это 5-9 цифр и заполняет формы (одинаковые значения во всех полях одной формы)
4. Подписует электросертификатом
5. Сохраняет файл как ПДФ с именем из поля формы
Вот как это выглядит ??? в итоге.
 

Вложения

  • 20_talers_C108_s_form.pdf
    307.6 КБ · Просм.: 93
  • 20_talers_C108_s_form_filled.pdf
    482.4 КБ · Просм.: 91

Drawer

Участник
Сообщения
1 755
Реакции
775
Купюры какие-то... потом будет интерпол будет искать еще...

Не по теме:
Какая версия акробата? У меня 9-ка, например, тупо вылетает если подписывать скриптом...
 

Charles Schreiber

@vectormapper
Сообщения
81
Реакции
2

Drawer

Участник
Сообщения
1 755
Реакции
775
В общем и целом одной кнопкой проблематично (у меня на 9-ке по крайней мере). Самое удобное на мой взгляд так:
c.gif
В итоге запустить 2 батча подряд и получить в выходной папке пронумерованные и подписанные файлы.
Скрипт для батча нумерации:
JavaScript:
var templateName = this.path;
var re = /\.pdf$/i;
var filename = this.documentFileName.replace(re,"")
var dir = templateName.substring(0, templateName.lastIndexOf('/'))
console.println(dir)
var datafilename = (filename+".txt")
var cnt = 0;
while (true) {
    console.println(cnt)
    this.getField("number 1").value = ""
    this.importTextData(dir+"/"+datafilename, cnt++ )
    var n = this.getField("number 1").value
    console.println("\n"+n)
    if (n != "") {
        this.saveAs(dir+"/Num_and_signed/"+filename+"_"+n+".pdf")
    } else {console.println("break"); break;}
}
this.closeDoc(true);

Скрипт для батча подписания:
JavaScript:
var ppklite = security.getHandler(security.PPKLiteHandler, true);
var oParams = {
    cPassword: "dps017",//Заменить на свой пароль подписи
    cDIPath: "/C/Users/User/AppData/Roaming/Adobe/Acrobat/9.0/Security/CharlesSchreiber.pfx" // Заменить на свой путь к профилю подписи
};
ppklite.login(oParams);
var myInfo = {
    password: "dps017",//Заменить на свой пароль подписи
    appearance: "Saint_Mary_Stamp"//Заменить на свой шаблон оформления
};
var f = this.getField("sign");
f.signatureSign({
    oSig: ppklite,
    oInfo: myInfo
});
Во вложении шаблон и файлик с данными.
 

Вложения

  • Cert.zip
    2.8 МБ · Просм.: 73
Последнее редактирование:

Charles Schreiber

@vectormapper
Сообщения
81
Реакции
2
"В общем и целом одной кнопкой проблематично... "
Супер!!!
Сердечно благодарю))) Завтра буду разбираться )))
Как и обещал - с меня - любая карта с моего сайта Maps of the Cities and Countries in Vector formats: Editable Adobe Illustrator PDF DWG DXF CDR В знак признательности ))) Просто напишите в почту vectormapper@gmail.com
 

Charles Schreiber

@vectormapper
Сообщения
81
Реакции
2
В общем и целом одной кнопкой проблематично (у меня на 9-ке по крайней мере). Самое удобное на мой взгляд так:

----
Привет. Скрипт нумерации работает великолепно, просто блеск))) (Правда, он почему то после выполнения залачи выключает Акробат. Видимо, чтобы я не баловался)))
А вот с автоматическим созданием подписей для кучи файлов - ничего не выходит.
Сложил Шаблон в папку док темплейтов Акробата c:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\DocTemplates\Saint_Mary_Stamp.pdf
Заменил в скрипте пароли, как указано, и конечно прописал путь к /C:/Users/User/AppData/Roaming/Adobe/Acrobat/DC/Security/MarkBankDivision.pfx
У меня версия Акробат DC
ясно, что я что то делаю не так... Вероятно, лапки...
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Правда, он почему то после выполнения залачи выключает Акробат.
В смысле, документ закрывает? Уберите this.closeDoc(true); в конце

А вот с автоматическим созданием подписей для кучи файлов - ничего не выходит.
Как именно ругается?
 

Charles Schreiber

@vectormapper
Сообщения
81
Реакции
2
В смысле, документ закрывает? Уберите this.closeDoc(true); в конце


Как именно ругается?
Он не ругается. Он просто не срабатывает - то есть скрипт запускает открытие файлов, отображает сам скрипт в по-ап окошке, нужно нажать ОК, он закрывает окошко, открывает следующее и т.д. но в реальности никаких изменений с файлами не происходит
 

Вложения

  • screen.jpg
    screen.jpg
    182.1 КБ · Просм.: 81