Zaawansowane techniki drukowania

Adobe AIR 2 i starsze wersje

Począwszy od środowiska Adobe AIR 2, klasa PrintJob zawiera dodatkowe właściwości i metody oraz obsługiwane są trzy dodatkowe klasy: PrintUIOptions, PaperSize i PrintMethod. Zmiany te pozwalają na wdrożenie dodatkowych obiegów pracy drukowania i dają twórcom większą kontrolę nad procesem drukowania. Zmiany obejmują między innymi:

  • Okna dialogowe ustawień strony: możliwe jest wyświetlanie zarówno standardowego, jak i niestandardowego okna dialogowego ustawień strony. Użytkownik może przed przystąpieniem do druku ustawić zakresy stron, rozmiar papieru, orientację i skalowanie.

  • Podgląd wydruku: możliwe jest udostępnienie trybu podglądu wydruku, w którym dokładnie odwzorowany zostanie rozmiar papieru, marginesy oraz położenie treści na stronie.

  • Ograniczenia wydruku: autorzy mogą ograniczyć opcje wydruku, takie jak zakres stron, które można drukować.

  • Opcje jakości: autorzy mogą dostosować jakości wydruku dla dokumentu i zezwalać użytkownikom na wybór rozdzielczości oraz palety kolorów.

  • Wiele sesji drukowania: pojedyncza instancja PrintJob może być używana w wielu sesjach drukowania. Aplikacje mogą udostępniać spójne ustawienia za każdym razem, gdy wyświetlane są okna dialogowe ustawień strony i wydruku.

Zmiany w obiegu pracy drukowania

Nowy obieg pracy drukowania składa się z następujących kroków:

  • new PrintJob() : Tworzy instancję PrintJob (lub wykorzystuje instancję już istniejącą). Wiele nowych właściwości i metod, takich jak selectPaperSize() , jest dostępnych, zanim możliwe będzie rozpoczęcie zadania wydruku lub już w trakcie drukowania.

  • PrintJob.showPageSetupDialog() : (opcjonalnie) Wyświetla okno konfiguracji strony bez rozpoczynania zadania wydruku.

  • PrintJob.start() lub PrintJob.start2() : Obok metody start() istnieje metoda start2() , która umożliwia zainicjowanie procesu buforowania wydruku. Metoda start2() umożliwia wybór, czy zostanie wyświetlone okno dialogowe Drukowanie i ewentualne jego dostosowanie.

  • PrintJob.addPage() : Umożliwia dodanie treści do zadania drukowania. Brak zmian w stosunku do dotychczasowego procesu.

  • PrintJob.send() lub PrintJob.terminate() : Umożliwia wysłanie stron do wybranej drukarki lub zakończenie zadania wydruku bez wysyłania. W razie wystąpienia błędu zadania drukowania są kończone. Jeśli instancja PrintJob zostanie zakończona, jej ponowne użycie będzie nadal możliwe. Bez względu na to, czy zadanie wydruku zostanie wysłane czy zakończone, bieżące ustawienia strony zostaną zachowane na wypadek ponownego użycia instancji PrintJob.

Okno dialogowe ustawień strony

Metoda showPageSetupDialog() umożliwia wyświetlanie okna dialogowego Ustawienia strony, o ile jest ono obsługiwane przez bieżące środowisko. Przed wywołaniem tej metody należy zawsze sprawdzać właściwość supportsPageSetupDialog . Oto prosty przykład:

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

Metodę można opcjonalnie wywołać za pomocą właściwości klasy PrintUIOptions w celu sterowania opcjami wyświetlanymi w oknie dialogowym Ustawienia strony. Możliwe jest ustawienie minimalnej i maksymalnej liczby stron. Poniższy przykład ilustruje sposób ograniczenia wydruku do trzech pierwszych stron:

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); 
}

Zmienianie ustawień drukowania

Ustawienia instancji PrintJob można zmienić w dowolnej chwili po jej utworzeniu. W szczególności możliwa jest zmiana ustawień między wywołaniami addPage() oraz po wysłaniu lub zakończeniu zadania wydruku. Niektóre ustawienia, jak na przykład właściwość printer , mają zastosowanie do całego zadania wydruku, a nie do pojedynczych stron. Te ustawienia należy ustawić przed wywołaniem metody start() lub start2() .

Możliwe jest wywołanie metody selectPaperSize() w celu ustawienia domyślnego rozmiaru papieru w oknach dialogowych Ustawienia strony i Drukowanie. Możliwe jest również wywołanie jej w trakcie zadania drukowania w celu ustawienia rozmiaru papieru dla zakresu stron. Jest ona wywoływana za pomocą stałych zdefiniowanych za pomocą klasy PaperSize , podobnie jak w tym przykładzie, w którym wybierany jest rozmiar koperty nr 10:

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

Właściwości printer można użyć do pobrania lub ustawienia nazwy drukarki dla bieżącego zadania drukowania. Domyślnie jest to nazwa drukarki domyślnej. Właściwość printer ma wartość null , jeśli brak jest dostępnych drukarek lub jeśli system nie obsługuje drukowania. Aby zmienić drukarkę, najpierw należy pobrać listę dostępnych drukarek za pomocą właściwości printers . Ta właściwość to obiekt Vector, którego elementy String stanowią nazwy dostępnych drukarek. Ustaw właściwość printer na jedną z tych wartości String, aby aktywować daną drukarkę. Nie można zmienić wartości właściwości printer aktywnego zadania drukowania. Próba jej zmiany następuje po pomyślnym wywołaniu metody start() lub start2() i przed wysłaniem zadania lub jego zakończeniem niepowodzeniem. Oto przykład ustawiania tej właściwości.

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

Właściwość copies umożliwia pobieranie wartości dla pewnej liczby kopii ustawionych w oknie dialogowym Drukowanie systemu operacyjnego. Właściwości firstPage i lastPage umożliwiają pobieranie zakresu stron. Właściwość orientation umożliwia pobieranie orientacji strony. Właściwości te można ustawić tak, aby miały pierwszeństwo przed wartościami wprowadzonymi w oknie dialogowym Drukowanie. Poniższy przykład ilustruje ustawianie tych właściwości:

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;

Poniższe ustawienia tylko do odczytu powiązane z poleceniem PrintJob zapewniają pomocne informacje związane z bieżącą konfiguracją drukarki:

  • paperArea : Granice prostokątnego obszaru nośnika, wyrażone w punktach.

  • printableArea : Granice prostokątnego obszaru drukowalnego, wyrażone w punktach.

  • maxPixelsPerInch : Fizyczna rozdzielczość bieżącej drukarki, wyrażona w pikselach na cal.

  • isColor : Możliwości bieżącej drukarki w zakresie druku kolorowego (zwraca wartość true , jeśli bieżąca drukarka umożliwia drukowanie w kolorze).

Patrz Przykład z drukowaniem: ustawienia strony i opcje drukowania .