Gelişmiş yazdırma teknikleri

Adobe AIR 2 ve üstü

Adobe AIR 2’den itibaren, PrintJob sınıfı ek özellik ve yöntemlere sahiptir ve üç ilave sınıf desteklenir: PrintUIOptions, PaperSize ve PrintMethod. Bu değişiklikler, ilave yazıcı iş akışlarına izin verir ve yazarların yazdırma işlemi üzerinde daha fazla kontrol sahibi olmasını sağlar. Değişiklikler şunları içerir:

  • Sayfa yapısı iletişim kutuları: Hem standart hem de özel sayfa yapısı iletişim kutuları görüntülenebilir. Kullanıcı, yazdırma işlemine başlamadan önce sayfa aralıklarını, kağıt boyutunu, yönlendirmeyi ve ölçeklemeyi ayarlayabilir.

  • Yazdırma görünümü: Kağıt boyutunu, kenar boşluklarını ve içeriğin sayfadaki konumunu tam olarak gösteren bir görünüm modu oluşturulabilir.

  • Sınırlı yazdırma: Yazarlar, yazdırılabilir sayfaların aralığı gibi yazdırma seçeneklerini sınırlandırabilir.

  • Kalite seçenekleri: Yazarlar bir belgenin yazdırma kalitesini ayarlayabilir ve kullanıcının çözünürlüğü ve renk seçeneklerini belirlemesine izin verebilir.

  • Birden fazla yazdırma oturumu: Tek bir PrintJob örneği artık birden fazla yazdırma oturumu için kullanılabilir. Uygulamalar sayfa yapısı ve yazdırma iletişim kutuları her görüntülendiğinde tutarlı ayarlar sağlayabilir.

Yazdırma iş akışı değişiklikleri

Yeni yazdırma iş akışı şu adımlardan oluşur:

  • new PrintJob(): Bir PrintJob örneği oluşturur (veya varolan bir örneği yeniden kullanır). selectPaperSize() gibi birçok yeni PrintJob özelliği ve yöntemi, yazdırma işi başlamadan veya yazdırma sırasında kullanılabilir durumdadır.

  • PrintJob.showPageSetupDialog(): (isteğe bağlı) bir yazdırma işlemi başlatmadan sayfa yapısı iletişim kutusunu görüntüler.

  • PrintJob.start() veya PrintJob.start2(): start() yöntemine ek olarak, start2() yöntemi yazdırma kuyruğu sürecini başlatmak için kullanılır. start2() yöntemi, Yazdır iletişim kutusunu gösterip göstermemeyi ve gösterilirse iletişim kutusunu özelleştirip özelleştirmemeyi seçmenize imkan verir.

  • PrintJob.addPage(): Yazdırma işine içerik ekler. Önceki işleme göre değişmemiştir.

  • PrintJob.send() veya PrintJob.terminate(): Sayfaları seçilen yazıcıya gönderir veya yazdırma işini göndermeden sonlandırır. Yazdırma işleri bir hataya yanıt olarak sonlandırılır. Bir PrintJob örneği sonlandırılırsa, hala yeniden kullanılabilir durumdadır. Yazdırma işinin yazıcıya gönderilmesine veya sonlandırılmasına bakılmaksızın, PrintJob örneğini yeniden kullandığınızda geçerli yazdırma ayarları korunur.

Sayfa yapısı iletişim kutusu

Geçerli ortam destekliyorsa, showPageSetupDialog() yöntemi işletim sisteminin Sayfa Yapısı iletişim kutusunu görüntüler. Bu yöntemi çağırmadan önce her zaman supportsPageSetupDialog özelliğini kontrol edin. Aşağıda basit bir örnek bulunmaktadır:

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
//check for static property supportsPageSetupDialog of PrintJob class 
if (PrintJob.supportsPageSetupDialog) { 
    myPrintJob.showPageSetupDialog(); 
}

Sayfa Kurulumu iletişim kutusunda hangi seçeneklerin görüntülendiğini kontrol etmek için bu yöntem isteğe bağlı olarak bir PrintUIOptions sınıfı özelliği ile çağrılabilir. En az ve en fazla sayfa sayısı ayarlanabilir. Aşağıdaki örnek yazdırmayı ilk üç sayfaya sınırlar:

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
if (PrintJob.supportsPageSetupDialog) { 
    var uiOpt:PrintUIOptions = new PrintUIOptions(); 
    uiOpt.minPage = 1; 
    uiOpt.maxPage = 3; 
    myPrintJob.showPageSetupDialog(uiOpt); 
}

Yazdırma ayarlarını değiştirme

PrintJob örneğinin ayarları, oluşturulduktan sonra herhangi bir zamanda değiştirilebilir. Buna bir yazma işi gönderildikten veya durdurulduktan sonra addPage() aramaları arasındaki ayarları değiştirme de dahildir. printer özelliği gibi bazı ayarlar, tek tek sayfalar için değil, tüm yazdırma işi için geçerli olur. Bu ayarlar start() veya start2() çağrılmadan önce yapılmalıdır.

selectPaperSize() yöntemi Sayfa Yapısı ve Yazdırma iletişim kutularında varsayılan kağıt boyutunu ayarlamak için çağrılabilir. Ayrıca bir yazdırma işi sırasında sayfa aralığına yönelik kağıt boyutunu ayarlamak için de kullanılabilir. 10 numara zarf boyutunun seçildiği örnekteki gibi, PaperSize sınıfında tanımlanan sabitleri kullanarak çağrılır:

import flash.printing.PrintJob; 
import flash.printing.PaperSize; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.selectPaperSize(PaperSize.ENV_10);

Geçerli yazıcı işinin yazıcı adını almak veya ayarlamak için printer özelliğini kullanın. Varsayılan olarak, varsayılan yazıcının adına ayarlanır. Kullanılabilir yazıcı yoksa veya sistem yazdırmayı desteklemiyorsa printer özelliği null olur. Yazıcıyı değiştirmek için ilk olarak printers özelliğini kullanarak kullanılabilir yazıcıların listesini alın. Bu özellik, Dize öğeleri kullanılabilir yazıcı adları olan bir Vektördür. Yazıcıyı aktif hale getirmek için, printer özelliğini bu Dize değerlerinden birine ayarlayın. Etkin bir yazıcı işinin printer özelliği değiştirilemez. start() veya start2() öğesine yapılan başarılı bir çağrıdan sonra veya görev gönderilmeden veya başarısızlıkla sonlanmadan önce bunu değiştirmeye çalışır. Bu özelliği ayarlamaya ilişkin bir örnek:

import flash.printing.PrintJob; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.printer = "HP_LaserJet_1"; 
myPrintJob.start();

copies özelliği, işletim sisteminin Yazdırma iletişim kutusunda ayarlanan kopya sayısının değerini alır. firstPage ve lastPage özellikleri sayfa aralığını alır. orientation özelliği kağıt yönlendirme ayarını alır. Bu özellikler Yazdır iletişim kutusundaki değerleri geçersiz kılacak şekilde ayarlanabilir. Aşağıdaki örnek bu özellikleri ayarlar:

import flash.printing.PrintJob; 
import flash.printing.PrintJobOrientation; 
     
var myPrintJob:PrintJob = new PrintJob(); 
myPrintJob.copies = 3; 
myPrintJob.firstPage = 1; 
myPrintJob.lastPage = 3; 
myPrintJob.orientation = PrintJobOrientation.LANDSCAPE;

PrintJob öğesiyle ilişkili aşağıdaki salt okunur ayarlar geçerli yazıcı kurulumuyla ilgili faydalı bilgiler sağlar:

  • paperArea: Yazıcı aracının nokta cinsinden dikdörtgen sınırları.

  • printableArea: Yazdırılabilir alanın nokta cinsinden dikdörtgen sınırları.

  • maxPixelsPerInch: Geçerli yazıcının inç başına piksel cinsinden fiziksel çözünürlüğü.

  • isColor: Geçerli yazıcının renk yazdırma özelliği (geçerli yazıcı renk yazdırabiliyorsa true değerini döndürür).

Bkz. Yazdırma örneği: Sayfa düzeni ve yazdırma seçenekleri.