2 votes

Problèmes d'impression de PNG transparents avec PrintJob (Flash AS)

Je suis en train d'essayer d'imprimer un movieclip avec printjob en flash.

Ce movieclip contient deux calques : un avec une image PNG avec de la transparence et un en dessous avec une image jpg.

Le problème est que la transparence du png n'est pas respectée, donc l'image jpg n'apparaît pas.

Le code que j'utilise est très simple:

var my_pj:PrintJob = new PrintJob();

if (my_pj.start()) {
    my_pj.addPage("_parent.imprimir", {xMin:0, xMax:399, yMin:0, yMax:900}, false);
    my_pj.send();
}
delete my_pj;

Merci d'avance.

3voto

kaplan Points 620

Je rencontre le même problème, j'ai besoin d'avoir des PNG transparents et des vecteurs dans mon PrintJob. Adobe dit d'utiliser :

var options:PrintJobOptions = new PrintJobOptions();
options.printAsBitmap = true;
myPrintJob.addPage(mySprite, null, options);

MAIS sur un Mac, nous obtenons une page blanche pour l'impression À MOINS que l'objet ne soit sur la scène. Merci à l'article de blog de Craig Grummitt avant d'oublier pour la solution !! http://craiggrummitt.wordpress.com/2007/12/21/printasbitmap-object-must-be-on-stage

this.addChild(page);
//pour les macs uniquement - sinon ils affichent la page pendant que la boîte de dialogue d'impression est ouverte.
page.visible = false; 
var myOption:PrintJobOptions = new PrintJobOptions(true);
my_pj.addPage(page, null, myOption);
my_pj.send();
this.removeChild(page);

Je cache simplement l'objet que je dois imprimer, cette solution fonctionne très bien pour moi. J'ai un symbole dans la bibliothèque que j'exporte. J'ai des PNG transparents avec mes vecteurs.

Le premier paramètre de addPage est un Sprite, donc je n'ai pas réussi à comprendre comment faire fonctionner la solution de cornéliu.

1voto

Corneliu Dascălu Points 1076

Prenez une capture d'écran de votre movieclip :

var bmp:BitmapData = new BitmapData(_parent.imprimir.width, _parent.imprimir.height);
bmp.draw(_parent.imprimir);
var page:Bitmap = new Bitmap(bmp);

Cette technique est recommandée pour chaque impression, car vous pouvez appliquer toutes sortes de transformations à l'image bitmap (échelle, rotation, lissage, etc.) avant de l'envoyer à l'imprimante.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X