Avancerade utskriftstekniker

Adobe AIR 2 och senare

Från och med Adobe AIR 2 innehåller klassen PrintJob ytterligare egenskaper och metoder, och tre ytterligare klasser stöds: PrintUIOptions, PaperSize och PrintMethod. Dessa ändringar tillåter ytterligare utskriftsarbetsflöden och ger författare större kontroll över utskriftsprocessen. Ändringarna omfattar:

  • Dialogrutor med utskriftsformat: Både standarddialogrutor och anpassade dialogrutor för utskriftsformat kan visas. Användaren kan ange sidintervall, pappersstorlek, orientering och skalning före utskrift.

  • Utskriftsvy: Ett visningsläge som visar pappersstorlek, marginaler och placeringen för sidan kan skapas.

  • Begränsad utskrift: Författare kan begränsa utskriftsalternativen, till exempel intervallet för utskriftsbara sidor.

  • Kvalitetsalternativ: Författare kan justera utskriftskvaliteten för ett dokument och tillåta användaren att välja upplösning och färgalternativ.

  • Flera utskriftssessioner: En enskild PrintJob-instans kan nu användas för flera utskriftssessioner. Program kan tillhandahålla enhetliga inställningar varje gång dialogrutorna med utskriftsformat och utskrift visas.

Ändringar i utskriftsarbetsflöde

Det nya utskriftsarbetsflödet består av följande steg:

  • new PrintJob() : Skapar en PrintJob-instans (eller återanvänder en befintlig instans). Många nya egenskaper och metoder för PrintJob, till exempel selectPaperSize() , är tillgängliga innan utskriftsjobbet påbörjas eller under utskriftsprocessen.

  • PrintJob.showPageSetupDialog() : (valfritt) Visa dialogrutan för utskriftsformat utan att påbörja ett nytt utskriftsjobb.

  • PrintJob.start() eller PrintJob.start2() : Utöver metoden start() används metoden start2() för att initiera utskriftsbuffringen. Metoden start2() gör det möjligt att välja om dialogrutan för utskrift ska visas och anpassa den om den ska visas.

  • PrintJob.addPage() : Lägg till innehåll i utskriftsjobbet. Oförändrad från befintlig process.

  • PrintJob.send() eller PrintJob.terminate() : Skicka sidorna till den valda skrivaren eller avsluta utskriftsjobbet utan att skicka. Utskriftsjobb avslutas som svar på ett fel. Även om en PrintJob-instans avbryts kan den fortfarande återanvändas. Oavsett om ett utskriftsjobb skickas till skrivaren eller avbryts bevaras de aktuella utskriftsinställningarna när du återanvänder PrintJob-instansen.

Dialogruta för utskriftsformat

Metoden showPageSetupDialog() visar operativsystemets dialogruta för utskriftsformat, om den aktuella miljön stöder det. Kontrollera alltid egenskapen supportsPageSetupDialog innan du anropar den här metoden. Här är ett enkelt exempel:

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

Metoden kan även anropas med en egenskap för klassen PrintUIOptions för att kontrollera vilka alternativ som ska visas i dialogrutan för utskriftsformat. Minsta och högsta sidnummer kan anges. I följande exempel begränsas utskriften till de tre första sidorna:

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

Ändra utskriftsinställningar

Inställningarna för en PrintJob-instans kan ändras när som helst sedan den har konstruerats. Detta inkluderar ändrade inställningar mellan addPage() -anrop och efter att ett utskriftsjobb har skickats eller avslutats. Vissa inställningar, till exempel egenskapen printer , gäller för hela utskriftsjobbet och inte för enskilda sidor. Dessa inställningar måste anges innan start() eller start2() anropas.

Metoden selectPaperSize() kan anropas för att ange standardpappersstorleken i dialogrutorna för utskriftsformat och utskrift. Den kan även anropas under ett utskriftsjobb för att ange pappersstorlek för ett sidintervall. Den anropas med hjälp av konstanter som definieras i klassen PaperSize , som i det här exemplet, där kuvertstorlek 10 används:

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

Använd egenskapen printer för att hämta eller ange namnet på skrivaren för det aktuella utskriftsjobbet. Som standard anger namnet på standardskrivaren. Egenskapen printer är null om det inte finns några skrivare tillgängliga eller om systemet inte stöder utskrift. Om du vill ändra skrivaren hämtar du först listan över tillgängliga skrivare med egenskapen printers . Den här egenskapen är en vektoregenskap vars strängelement består av tillgängliga skrivarnamn. Ange egenskapen printer för något av dessa strängvärden för att göra den skrivaren aktiv. Det går inte att ändra egenskapen printer för ett aktivt utskriftsjobb. Försök att ändra den efter ett anrop till start() eller start2() , och innan jobbet skickas eller avslutas, misslyckas. Här är ett exempel på hur den här egenskapen anges:

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

Egenskapen copies hämtar värdet för antalet kopior som anges i operativsystemets dialogruta för utskrift. Egenskaperna firstPage och lastPage hämtar sidintervallet. Egenskapen orientation hämtar inställningen för pappersorientering. Du kan ange att de här egenskaperna ska åsidosätta värdena från dialogrutan för utskrift. I följande exempel anges dessa egenskaper:

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;

Följande skrivskyddade inställningar som är associerade med PrintJob ger användbar information om de aktuella skrivarinställningarna:

  • paperArea : De rektangulära gränserna för skrivarmaterialet, i punkter.

  • printableArea : De rektangulära gränserna för det utskriftsbara området, i punkter.

  • maxPixelsPerInch : Den fysiska upplösningen för den aktuella skrivaren, i pixlar per tum.

  • isColor : Den aktuella skrivarens förmåga att skriva ut i färg (returnerar true om den aktuella skrivaren kan skriva ut i färg).

Se Utskriftsexempel: utskriftsformat och utskriftsalternativ .