Numeracija
(1 korsinik/a gleda/ju temu) (1) Gost

Numeracija


19.11.2010 | 15:28
Pokazala mi se potreba da isprintam na nekakve ulaznice numeraciju od 0001 do 5000. Nekeda davno je za Quark postojao plug-in za numeriranje. Doduše, nisam izbirljiv, ne mora biti plug-in, može programčić biti i samostalni. Samo da ne bude neko Office riješenje jer namam Office.
Zna li itko za takvo šta?
Tema zaključana.
19.11.2010 | 19:08
Ne znam za gotovo rješenje (i ne koristim Quark), ali može se riješiti s AppleScriptom, ovisno o workflowu koji imaš na umu.

Primjerice, u InDesignu (kojeg koristim) napraviš template (na kojem je textbox s numeracijom smješten na odgovarajuće mjesto) pa onda skripta duplicira tu stranicu još 4.999 puta (ako je svaka ulaznica = 1 list) i na svakoj sljedećoj poveća broj u textboxu za +1. Naravno, stvar bi funkcionirala i s više od jednog textboxa na stranici (za slučaj više ulaznica na jednom listu).

Ako ne nađeš gotovo rješenje, a paše ti InDesign, javi pa ti to složim.
Tema zaključana.
19.11.2010 | 20:55
Ups. Sjetio sam se da je petak pa ako sad ne složim, ništa do ponedjeljka. Dakle...

tell application "Adobe InDesign CS3"
  set numMin to 42
  set numMax to 100
  set numDigits to 4
  set numPad to ""
  repeat numDigits times
    set numPad to numPad & "0"
  end repeat
  tell document "labels.indd"
    set labelsPerPage to (number of text frames of page 1)
    set totalPages to (1 + (round ((numMax - numMin) / labelsPerPage) rounding toward zero))
    set num to numMin
    set currentPage to 1
    repeat totalPages times
      set currentLabel to 1
      repeat labelsPerPage times
        set numStr to numPad & num
        set numStr to text ((length of numStr) - numDigits + 1) thru (length of numStr) of numStr
        set contents of text frame currentLabel of page currentPage to numStr
        set currentLabel to currentLabel + 1
        set num to num + 1
      end repeat
      if (currentPage < totalPages) then
        duplicate page 1
        set currentPage to currentPage + 1
      end if
    end repeat
  end tell
end tell

Prva linija je bitna jer u njoj piše kojem InDesignu se obraćamo (ovdje "CS3" ). Ako koristiš neki drugi, zamijeni "CS3" s tim drugim ("CS4", recimo).

Sljedeće 3 linije su također bitne (i u nekom sretnijem scenariju bi imale svoj GUI ). "numMin" je prvi broj numeracije. U mom slučaju "42", u tvom "1". "numMax" je zadnji broj numeracije. U mom slučaju "100", u tvom "5000". "numDigits" služi za formatiranje, određivanjem broja vodećih nula. Postavljen je na 4 tako da "1" formatira kao "0001".

Linija "tell document..." sadrži ime OTVORENOG dokumenta koji će skripta obraditi. U mom slučaju to je "labels.indd". Ako se tvoj dokument drugačije zove, ovdje treba promijeniti ime (i da, i to bi išlo u GUI ).

Dalje u nastavku je glavna petlja koja prije ulaska prebroji koliko ima "labela" na stranici, potom izračuna koliko ukupno stranica mora kreirati da bi u dokumentu bilo dovoljno mjesta za cijelu numeraciju, postavi par varijabli i krene.

U petlji obrađujemo stranicu po stranicu, tako da u svaku labelu (InDesignov text frame) upišemo uredno formatiranu numeraciju. Kad ispunimo stranicu, dupliciramo prvu stranicu (korisitmo je kao template) na kraj dokumenta i ponavljamo postupak.

Da bi skripta radila, potrebno je PRIJE pokretanja kreirati odgovarajući template dokument (u skripti je to ovaj "labels.indd" ). Kreiramo ga tako da u PRAZNOM dokumentu (kojeg čini samo JEDNA STRANICA) napravimo text frame, upišemo unutra neki dummy tekst i formatiramo taj tekst onako kako želimo da nam izgleda numeracija (font, veličina fonta, boja...). Napominjem da InDesign "naopako" identificira text frameove (zadnji kojeg napravimo tretira kao "prvi", a prvi kojeg smo napravili kao "zadnji" ) pa ako želimo da numeracija raste s vrha prema dnu stranice, potrebno je PRVI text frame kreirati na DNU stranice, a zadnji na VRHU. Dakle, napravimo prvi, smjestimo ga na dno, dupliciramo ih još N, posložimo jedan iznad drugog, alignamo/distribuiramo automatski ili pješke i imamo template za numeraciju. To snimimo (za slučaj da se nešto u procesu zbrlja) i pokrenemo skriptu koja će obaviti gore opisano.

Testirao sam sa stranicom formata A4 na kojoj su samo 3 text framea (pretpostavka da je riječ o kartama veličine 21x10 cm, printanim/tiskanim po 3 na jednom A4 listu). InDesign je kreirao 1.667 stranica s urednom numeracijom za 7 minuta. Konačni PDF je bio velik 1 MB (da nekoga ne prestraši "čak" 1.667 stranica). Ovih 7 minuta je relativno sporo jer se po putu malo "ugušio", s obzirom da je prvu polovicu posla (2.500 numeracija) obavio za 2 minute i 10 sekundi. Manji broj stranica, a veći broj text frameova po stranici bitno ubrza generiranje.
Tema zaključana.
19.11.2010 | 22:27
Ovo se može i inDesignu samom. Bez pisanja koda, postoji za to i GUI.

evo link creativebits.org/indesign/numbering_tick...rs_with_indesign_cs3

Pozdrav
Tema zaključana.
19.11.2010 | 23:00
Istina. Vjerujem da postoji još N različitih rješenja, ali sva na koja sam naišao zahtjevaju previše klikova (za moj pojam).

Usput - postoji li neko rješenje (osim kriptičnog Find/Replacea s GREPom) koje numeraciju rađenu na predloženi način formatira s vodećim nulama (dakle, "1" pretvori u "0001" )?
Tema zaključana.
20.11.2010 | 10:32
Stvar kopa. Nisam baš Tarzan u InDesignu, ali se snalazim. Slijedio sam naputke i sve radi.
Najtoplije zahvaljujem.
PS
Pokušt ću prepeglati skript, možda radi i u Quarku.
Pozdrav.
Tema zaključana.
Moderatori: Bertone
  • Stranica:
  • 1

Prijava