2010-12-02 4 views
2

J'essaie d'imprimer un MovieClip avec printjob en flash.Problèmes d'impression pngs de transparence avec printjob (Flash AS)

Ce MovieClip contient deux couches: une avec une image PNG avec transparence et l'autre 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 j'utilise est réel 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 à l'avance.

Répondre

1

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 tous les PrintJob, parce que vous pouvez appliquer toutes sortes de transformations au bitmap (échelle, rotation, lissage, etc.) avant de l'envoyer à L'imprimante.

+0

sauf que la qualité des vecteurs sera perdue? – alxx

+0

@alxx Que voulez-vous dire? Il va quand même imprimer le MovieClip, de quoi aurait-il besoin de vecteurs? Pour ne pas mentionner que dans la question, il a déclaré clairement qu'il a un png et un jpg, pas des vecteurs. –

+0

Je viens de noter que rasteriser probablement pas le meilleur pour * chaque * travail d'impression, bien que pour ce cas, c'est correct. – alxx

2

J'ai le même problème, j'ai besoin d'avoir des pngs et des vecteurs transparents dans mon PrintJob. Adobe dit 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 que si vous disposez de l'objet sur la scène. Merci à l'équipe de Craig Grummitt pour son blog intitulé "Before I Forget Blog"! http://craiggrummitt.wordpress.com/2007/12/21/printasbitmap-object-must-be-on-stage

this.addChild(page); 
//for macs only – otherwise they display the page while the print dialogue is open. 
page.visible = false; 
var myOption:PrintJobOptions = new PrintJobOptions(true); 
my_pj.addPage(page, null, myOption); 
my_pj.send(); 
this.removeChild(page); 

Je suis juste cacher l'objet que j'ai besoin d'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. AddPage premier paramètre est un Sprite, donc je ne pouvais pas comprendre comment faire fonctionner la solution de corneliu.

+0

Pour utiliser la solution Corneliu, créez simplement le bitmap, ajoutez-le à une image-objet et imprimez-le simplement. – Pier