Définition de la taille, de l’échelle et de l’orientation
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La section
Impression d’une page
décrit en détail les étapes d’une tâche d’impression de base, dans laquelle la sortie reproduit directement le sprite spécifié, selon sa taille d’affichage et sa position à l’écran. Néanmoins, les imprimantes utilisent différentes résolutions d’impression et certains de leurs paramètres peuvent altérer l’aspect du sprite imprimé.
Les moteurs d’exécution Flash peuvent lire les paramètres d’impression du système d’exploitation, mais notez que ces propriétés sont accessibles en lecture seule. En d’autres termes, bien que vous puissiez réagir à leur valeur, il est possible de les définir. Par exemple, il est possible de déterminer le paramètre de format de page de l’imprimante et d’ajuster votre contenu en fonction. Vous pouvez de même identifier les paramètres de marge de l’imprimante ainsi que l’orientation des pages. Pour répondre aux paramètres de l’imprimante, spécifiez une zone d’impression, effectuez un ajustement pour tenir compte de la différence entre la résolution de l’écran et la mesure de points de l’imprimante, ou faites correspondre le contenu aux paramètres de taille et d’orientation de l’imprimante de l’utilisateur.
Définition de la zone d’impression à l’aide de rectangle
La méthode
PrintJob.addPage()
vous permet de spécifier la partie du sprite que vous souhaitez imprimer. Le deuxième paramètre,
printArea
prend la forme d’un objet Rectangle. Vous pouvez fournir la valeur de ce paramètre de trois manières :
-
Créez un objet Rectangle doté de propriétés spécifiques, puis utilisez-le dans l’appel
addPage()
, comme dans l’exemple suivant :
private var rect1:Rectangle = new Rectangle(0, 0, 400, 200);
myPrintJob.addPage(sheet, rect1);
-
Si vous n’avez pas encore spécifié l’objet Rectangle, vous pouvez le faire dans l’appel lui-même, comme illustré ci-dessous :
myPrintJob.addPage(sheet, new Rectangle(0, 0, 100, 100));
-
Si vous prévoyez de fournir des valeurs pour le troisième paramètre de l’appel
addPage()
sans pour autant spécifier un objet Rectangle, utilisez la valeur
null
pour le deuxième paramètre, comme suit :
myPrintJob.addPage(sheet, null, options);
Comparaison entre les points et les pixels
La largeur et la hauteur d’un rectangle sont exprimées en pixels. Une imprimante utilise les points en tant qu’unités de mesure. Les points ont une taille physique fixe (1/72e de pouce), mais la taille d’un pixel à l’écran varie selon la résolution de ce dernier. De ce fait, le taux de conversion entre les pixels et les points dépend de la configuration de l’imprimante et du redimensionnement éventuel du sprite. Un sprite non redimensionné d’une largeur de 72 pixels mesure un pouce (2,54 cm) de large lorsqu’il est imprimé, sachant qu’un point correspond à un pixel quelle que soit la résolution de l’écran.
Vous pouvez utiliser les équivalences suivantes pour convertir les pouces ou les centimètres en twips ou points (un twip correspond à 1/20ème de point) :
Si vous omettez le paramètre
printArea
ou s’il est transmis de façon incorrecte, la zone entière du sprite est imprimée.
Redimensionnement
Si vous souhaitez redimensionner un objet Sprite avant de l’imprimer, définissez les propriétés de redimensionnement (voir
Manipulation de la taille et de l’échelle des objets
) avant d’appeler la méthode
PrintJob.addPage()
, puis rétablissez leurs valeurs d’origine après l’impression. L’échelle d’un objet Sprite ne dépend pas de la propriété
printArea
. En d’autres termes, si vous spécifiez une zone d’impression de 50 pixels par 50 pixels, 2 500 pixels sont imprimés. Si vous redimensionnez l’objet Sprite, les 2 500 pixels sont imprimés, mais l’objet est imprimé à l’échelle retenue.
A titre d’exemple, voir
Exemple d’impression : mise à l’échelle, recadrage et ajustement
.
Impression en mode paysage ou portrait
Flash Player et AIR étant capables de détecter les paramètres d’orientation, vous pouvez insérer dans votre code ActionScript une logique permettant d’ajuster la taille du contenu ou son orientation en fonction des paramètres de l’imprimante, comme illustré dans l’exemple ci-après.
if (myPrintJob.orientation == PrintJobOrientation.LANDSCAPE)
{
mySprite.rotation = 90;
}
Remarque :
si vous envisagez de lire le paramètre système pour définir l’orientation du contenu sur le papier, n’oubliez pas d’importer la classe
PrintJobOrientation
. La classe PrintJobOrientation fournit des valeurs constantes qui définissent l’orientation du contenu sur la page. Vous importez la classe à l’aide de l’instruction suivante :
import flash.printing.PrintJobOrientation;
Ajustement de la hauteur et de la largeur au format du papier
Par l’utilisation d’une stratégie semblable à la gestion des paramètres d’orientation de l’imprimante, vous pouvez lire les paramètres de hauteur et de largeur de page, puis en tenir compte en intégrant une logique dans une instruction
if
. Le code suivant illustre ce cas de figure :
if (mySprite.height > myPrintJob.pageHeight)
{
mySprite.scaleY = .75;
}
En outre, il est possible de déterminer les paramètres de marge d’une page en comparant les dimensions de cette page à celle du papier, comme illustré ci-après :
margin_height = (myPrintJob.paperHeight - myPrintJob.pageHeight) / 2;
margin_width = (myPrintJob.paperWidth - myPrintJob.pageWidth) / 2;
|
|
|
|
|