Impostazione delle dimensioni, della scala e dell'orientamentoFlash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive Nella sezione Stampa di una pagina è descritta in dettaglio la procedura per un lavoro di stampa di base, in cui l'output riflette direttamente l'equivalente su carta delle dimensioni dello schermo e della posizione dello sprite specificato. Le stampanti utilizzano tuttavia risoluzioni diverse per la stampa e possono avere impostazioni che influiscono negativamente sull'aspetto dello sprite stampato. I runtime di Flash sono in grado di leggere le impostazioni della stampante del sistema operativo, ma queste proprietà sono di sola lettura: è possibile rispondere ai relativi valori, ma non impostarli. Quindi è possibile, ad esempio, verificare l'impostazione del formato carta della stampante e adattare il contenuto al formato e, inoltre, determinare le impostazioni dei margini e l'orientamento della pagina della stampante. Per rispondere alle impostazioni della stampante, specificate un'area di stampa, regolate la differenza tra la risoluzione dello schermo e le misure in punti della stampante oppure trasformate il contenuto affinché corrisponda alle impostazioni relative alle dimensioni e all'orientamento della stampante in uso. Utilizzo di rettangoli per l'area di stampaIl metodo PrintJob.addPage() consente di specificare l'area di uno sprite che si desidera stampare. Il secondo parametro, printArea, è rappresentato da un oggetto Rectangle. Sono disponibili tre opzioni per fornire un valore a questo parametro:
Confronto tra punti e pixelLa larghezza e l'altezza del rettangolo sono espresse in pixel. L'unità di misura di stampa utilizzata da una stampante è il punto. I punti hanno dimensioni fisiche fisse (1/72 di pollice), mentre le dimensioni di un pixel dipendono dalla risoluzione specifica dello schermo. Il tasso di conversione tra pixel e punti varia a seconda delle impostazioni della stampante e se lo sprite è stato modificato in scala. Un oggetto sprite non modificato in scala largo 72 pixel viene stampato con una larghezza di un pollice, con un punto equivalente a un pixel, indipendentemente dalla risoluzione dello schermo. È possibile utilizzare le seguenti equivalenze per convertire pollici o centimetri in twip o punti (un twip corrisponde a 1/20 di punto):
Se omettete il parametro printArea oppure se questo viene passato in modo non corretto, viene stampata l'intera area dello sprite. RidimensionarePer modificare in scala un oggetto Sprite prima della stampa, impostatene le proprietà (vedete Manipolazione delle dimensioni e modifica in scala degli oggetti) prima di chiamare il metodo PrintJob.addPage() utilizzando nuovamente i rispettivi valori originali dopo la stampa. La scala di un oggetto Sprite non ha alcuna relazione con la proprietà printArea. In altre parole, se specificate un'area di stampa di 50 x 50 pixel, vengono stampati 2500 pixel. Se si modifica in scala l'oggetto Sprite, vengono stampati gli stessi 2500 pixel ma l'oggetto viene stampato nelle dimensioni modificate in scala. Per un esempio, vedete Esempio di stampa: Modifica in scala, ritaglio e risposta. Stampa con orientamento verticale o orizzontalePoiché Flash Player e AIR sono in grado di rilevare le impostazioni relative all'orientamento, potete inserire nel codice ActionScript la logica necessaria per regolare le dimensioni o la rotazione del contenuto in risposta alle impostazioni della stampante, come illustrato nell'esempio riportato di seguito: if (myPrintJob.orientation == PrintJobOrientation.LANDSCAPE)
{
mySprite.rotation = 90;
}
Nota: se prevedete di leggere le impostazioni di sistema per l'orientamento del contenuto nella pagina, ricordate di importare la classe PrintJobOrientation. La classe PrintJobOrientation fornisce i valori costanti che definiscono l'orientamento del contenuto nella pagina. Per importare la classe, utilizzate l'istruzione seguente:
import flash.printing.PrintJobOrientation; Risposta ai valori di altezza e larghezza della paginaUtilizzando una strategia analoga alla gestione delle impostazioni di orientamento della stampante, è possibile leggere le impostazioni relative all'altezza e alla larghezza della pagina e rispondere incorporando la logica in un'istruzione if. Nel codice seguente viene presentato un esempio: if (mySprite.height > myPrintJob.pageHeight)
{
mySprite.scaleY = .75;
}
Inoltre, è possibile determinare le impostazioni dei margini della pagina confrontando le dimensioni della pagina e del foglio, come nell'esempio riportato di seguito: margin_height = (myPrintJob.paperHeight - myPrintJob.pageHeight) / 2; margin_width = (myPrintJob.paperWidth - myPrintJob.pageWidth) / 2; |
|