Na webu NaPočítači.cz vyšel nedávno zajímavý manuál na vytvoření PDF formuláře. Návod Vytvoření vyplňovacího PDF formuláře v programu Scribus si můžete přečíst na stránkách portálu.
Poznámka k vytváření pole k výběru a pole se seznamem
Jestliže nepotřebujete vkládat žádné speciální funkce, místo javascriptu je možné vložit seznam hodnot do textového rámce. Nejprve si vytvoříte rámec s vybraným typem pole. Vyberete textový rámec a přes klik na pravé tlačítko myši zvolíte Upravit text… Můžete také použít klávesovou zkratku Ctrl+T. Vložením jednotlivých hodnot zalomených entrem vytvoříte jednotlivé položky výběru (seznamu).
Děkuji za pěkný, poučný a motivující článek!
S PDF formuláři jsem si ve školství užili spoustu zábavy – od tvorby materiálu pro interaktivní tabule, programované učebnice až po testy. Pokus se člověk odhodlá prolistovat referenční příručku k API (např. https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf), získá velice mocný nástroj, včetně možnosti rozpohybovat formulářové prvky.
Tam se např. dozví, že i PDF formulář vytvořený v Scribu 1.4.7 může používat prvky typu „radiobutton“. Člověk si je ale musí vytvořit sám. Nedávno jsem ze zvědavosti vyzkoušel Scribus 1.5.4. Jistě, je to vývojová verze, ale koncept přepínačů je zde, zdá sa, stále poněkud nepochopený. Přepínače degraduje na zaškrtávací políčka (checkbox). Přepínače musí vytvářet skupinu! Adobe Acrobat Pro s tím problém nemá.
Pokud můžu být konkrétnější: Všechny prvky ve skupině musí zdílet společné jméno!
Řekněme, že do knihovny Javascriptů bych vložil funkci (třídu):
function Radiobutton(con, page, name, x, y, dx, dy, padx, pady, cx, cy) {
this.page = page;
this.name = name;
this.x = x;
this.y = y;
this.dx = dx;
this.dy = dy;
this.padx = padx;
this.pady = pady;
this.countx = cx;
this.county = cy;
this.widget = null;
this.value = new Array(this.countx * this.county);
this.coord = new Array();
// metoda create
this.create = function () {
with (this) {
widget = con.addField(name, „radiobutton“, page, [x, y, x + dx, y + dy]);
for(var i = 0; i < countx; i++)
for(var j = 0; j< county; j++) {
coord[0] = x + i*(dx + padx);
coord[1] = y + j*(dy + pady);
coord[2] = coord[0] + dx;
coord[3] = coord[1] + dy;
if ( !i && !j) continue;
con.addField(name, "radiobutton", page, coord);
}
widget.strokeColor = color.black;
widget.exportValues = value; //nutno doplnit konkretne
//widget.setAction("MouseUp" , "this.getField('result').value = widget.value;");
}
}
}
a jako událost na start dokumentu nebo akci na tlačítku bych třeba vložiť kód:
var radio = new Array();
radio.push(new Radiobutton(this, this.pageNum, "radio1", 50, 50, 30, 30, 10, 10, 15, 5));
radio.push(new Radiobutton(this, this.pageNum, "radio2", 50, 300, 30, 30, 10, 10, 15, 5));
for(var i = 0; i < radio.length; i++) radio[i].create();
…atd, obě skupiny "radio1" a "radio2" budou existovat nezávisle. Toto zatím chybí ve všech verzích programu Scribus.
Přeji mnoho tvořivých sil a zdaru při zdolávání DTP a zejména PDF formulářů!