martedì 7 ottobre 2014

Stampare su più pagine per pigri

Abbiamo già visto in questo post come stampare su più pagine: si divide il documento su più card e si stampa tutto lo stack che contiene le card.
Se non siamo troppo interessati alla formattazione, ma abbiamo bisogno di stampare un documento e lasciar fare a Livecode la suddivisione del testo su più pagine, possiamo utilizzare il comando revPrintText.
Il fromato per invocarlo è:


revPrintText testo, intestazione, piedipagina, stile

Questo comando impagina automaticamente il testo, inoltre potete usare i separatori <% %> per inserire qualunque cosa interpretabile da Livecode, ad esempio:
  • <% the system date %> riporta 07/10/2014
  • <% the time %> riporta 3:18 PM
  • e così via...
Inoltre vi mette a disposizione i seguenti comandi:
  • <% pageNumber %> che stampa il numero di pagina corrente
  • <% numPages %> che stampa il totale delle pagine
 Lo stile del testo è lo standard da 12 punti, ma se gli indicate un campo da prendere ad esempio, imiterà tutto lo stile del campo, ad esempio:


revPrintText miotesto,,,field "stile"

prende i fonti, la grandezza del testo, l'allineamento e tutto quello che avrete impostato nel field "stile".

Potete perfino impostare intestazione e piè di pagina, la stringa ha anche delle opzioni di allineamento: tutto quello prima di un TAB è allineato a sinistra, tra il primo e il secondo TAB è allineato al centro, dopo il secondo TAB è allineato a destra.
Ad esempio:
put the text of field 1 into testo
put "a sinistra" & TAB & "TITOLO CENTRALE" & TAB & "a destra" into intestazione   
put "A sinistra in basso" & TAB & "RIPRODUZIONE RISERVATA" & TAB & "<%pageNumber%> / <%numPages%>" into piedipagina   
revPrintText testo, intestazione, piedipagina



e questo è il risultato:
Per finire, ma forse può essere estremamente importate per qualcuno, potete usare i tag HTML per migliorare il testo. I tag accettati sono gli stessi della proprietà htmltext  (accetta anche <ol> e <ul>). Se revPrintText trova dei tag, elabora tutto il testo come una pagina HTML.
Ad esempio potete ottenere questo:
Dal mio punto di vista passare attraverso l'HTML può significare dare un doppio (inutile) passaggio, sfruttare card e stack produce risultati migliori dal punto di vista grafico. Questa soluzione serve solo quando non avete la più pallida idea di cosa stamperete e di quanto sarà lunga.