Bir jpg yazdırmak

oy
0

Bir dinamik yüklenen jpg yazdırmaya çalışıyorum ve nedense asla ölçeğine baskı oluyor, emin değilim ne işte yanlış yapıyorum şimdiye kadar yaptığın şey

var request:URLRequest = new URLRequest(getAbsPath(pages/ + pagePrint + _big.jpg));
var loader:Loader = new Loader();
loader.load(request);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);

var frame:Sprite = new Sprite()
function completeHandler(event:Event):void {

    var picture:Bitmap = Bitmap(loader.content);
    var bitmap:BitmapData = picture.bitmapData;
    var matrix:Matrix = new Matrix();
    matrix.scale(1, 1);

    frame.graphics.beginBitmapFill(bitmap, matrix, true);
    frame.graphics.drawRect(0, 0, bitmap.width, bitmap.height);
    frame.graphics.endFill();
    addChild(frame);
    frame.visible = false;

    printPage();    
}
function printPage ():void {
    var myPrintJob:PrintJob = new PrintJob();
    var options:PrintJobOptions = new PrintJobOptions();
    options.printAsBitmap = true;

    myPrintJob.start();

    try {
        myPrintJob.addPage(frame, null, options);
    }
    catch(e:Error) {
        trace (Had problem adding the page to print job:  + e);
    }

    try {
        myPrintJob.send();
    }
    catch (e:Error) {
        trace (Had problem printing:  + e);    
    }
}

Sadece resmin bir parçasını alır ve tüm sayfayı doldurmak için o kadar darbeler Nedense ... Yanlış yapıyorum Herhangi bir fikir ... jpg boyutları 1280x1656 vardır ve bunu tüm jpg yazdırmak istersiniz?

Oluştur 28/09/2009 saat 15:27
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
0

Ben resim 72dpi varsayılan çözünürlükte yazıcı kuyruğuna gönderildiğini tahmin ediyorum, yüzden (a 17,777" x 23" görüntü olduğunu 1280x1656 at) büyük çıkıyor o yüzden sadece üst sol görüyoruz tahmin ediyorum fiziksel yazdırılan sayfada uydurma çoğu bölümü.

Bunu çözmek için, hala oldukça düşük 72dpi çözünürlükte olmasının daha az detay aidatları ile çıkacaktır (en azından muhtemelen yaklaşık 0,45 ölçeğine) sayfada sığacak şekilde küçültün ya. Ya da istediğiniz baskı boyutuna (muhtemelen 300dpi ya da öylesine) için daha doğru olmasını DPI ayarlamaktır ikinci yaklaşım, kullanabilirsiniz

Eğer görüntünün iç DPI sıfırlamak gerekirse, tek yöntem gördüğüm (ama şahsen denemedim) Flex SDK içinde ImageSnapshot sınıftır ettik. Belirli bir DPI de BitmapData ayıklamak için kullanabilirsiniz, o zaman PrintJob için BitmapData olduğunu gönderebilir.

ImageSnapshot.captureBitmapData () Belgeleri

Yüklediğiniz ediyoruz JPEG resim dosyası daha yüksek DPI sahipse size beginBitmapFill yapmak Ayrıca, daha hızlı daha kolay şey muhtemelen elden gittiğini, ... () denemek için. Bunu çizim yerine 'çerçeve' bir çocuk olarak Bitmap eklemeyi deneyebilir misiniz? Bu senin için düzgün çözünürlüğü koruyabilir.

Cevap 29/09/2009 saat 17:30
kaynak kullanıcı

oy
0

Yazdırma denemeden önce ben uygun klibi ölçek ederim.

Sen çıkış sayfasıyla piksel genişliğini ve yüksekliğini alabilirsiniz:

myPrintJob.pageWidth
myPrintJob.pageHeight

Ve buna dayanarak çerçevenin .scaleX ve .scaleY ayarlayın.

(Baskı işleme Flash Player'ın her sürümünde herkesin bildiği saçma olduğunu, siz bir sürü iş yapmak zorunda kendinizi korkarım ...)

Cevap 29/09/2009 saat 17:11
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more