고급 인쇄 기법

Adobe AIR 2 이상

Adobe AIR 2부터 PrintJob 클래스에 속성 및 메서드가 추가되었습니다. 또한 PrintUIOptions, PaperSize, PrintMethod의 세 가지 클래스가 추가로 지원됩니다. 이러한 변경으로 추가 인쇄 작업 과정을 사용할 수 있으며 인쇄 프로세스에 대한 제작자의 제어력이 강화됩니다. 변경된 사항은 다음과 같습니다.

  • 페이지 설정 대화 상자: 표준 및 사용자 정의 페이지 설정 대화 상자가 모두 표시될 수 있습니다. 사용자가 인쇄하기 전에 페이지 범위, 용지 크기, 방향 및 비율을 설정할 수 있습니다.

  • 인쇄 보기: 용지 크기, 여백, 페이지 내용의 위치를 정확하게 보여 주는 보기 모드를 만들 수 있습니다.

  • 제한 인쇄: 제작자가 인쇄 가능한 페이지 범위 등의 인쇄 옵션을 제한할 수 있습니다.

  • 품질 옵션: 제작자가 문서의 인쇄 품질을 조정하고 사용자가 해상도 및 색상 옵션을 선택하도록 허용할 수 있습니다.

  • 다중 인쇄 세션: 이제 여러 인쇄 세션에 대해 하나의 PrintJob 인스턴스를 사용할 수 있습니다. 따라서 페이지 설정 및 인쇄 대화 상자가 표시될 때마다 일관된 설정을 제공할 수 있습니다.

인쇄 작업 과정 변경 사항

새로운 인쇄 작업 과정은 다음과 같은 단계로 구성됩니다.

  • new PrintJob() : PrintJob 인스턴스를 만들거나 기존 인스턴스를 다시 사용합니다. 인쇄 작업이 시작되기 전 또는 인쇄가 진행되는 동안 selectPaperSize() 와 같은 여러 가지 새로운 PrintJob 속성 및 메서드를 사용할 수 있습니다.

  • PrintJob.showPageSetupDialog() : (선택 사항) 인쇄 작업을 시작하지 않고 페이지 설정 대화 상자를 표시합니다.

  • PrintJob.start() 또는 PrintJob.start2() : start() 메서드 외에 start2() 메서드를 사용하여 인쇄 스풀링 프로세스를 시작할 수 있습니다. start2() 메서드를 사용하면 [인쇄] 대화 상자를 표시할지 여부를 선택하고 표시되는 경우 대화 상자를 사용자 정의할 수 있습니다.

  • PrintJob.addPage() : 인쇄 작업에 내용을 추가합니다. 기존 프로세스에서 변경된 사항이 없습니다.

  • PrintJob.send() 또는 PrintJob.terminate() : 선택한 프린터로 페이지를 전송하거나, 페이지 전송 없이 인쇄 작업을 종료합니다. 오류가 발생할 경우 인쇄 작업이 종료됩니다. PrintJob 인스턴스가 종료되어도 이를 다시 사용할 수 있습니다. 인쇄 작업을 프린터로 보내든지 종료하든지 관계없이 PrintJob 인스턴스를 다시 사용할 때 현재 인쇄 설정이 유지됩니다.

페이지 설정 대화 상자

현재 환경에서 지원되는 경우 showPageSetupDialog() 메서드가 운영 체제의 페이지 설정 대화 상자를 표시합니다. 이 메서드를 호출하기 전에 항상 supportsPageSetupDialog 속성을 확인하십시오. 다음은 간단한 예입니다.

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

PrintUIOptions 클래스 속성으로 메서드를 호출하여 페이지 설정 대화 상자에 표시될 옵션을 제어할 수 있습니다(선택 사항). 최소/최대 페이지 번호를 설정할 수 있습니다. 다음 예에서는 처음 3개 페이지로 인쇄를 제한합니다.

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

인쇄 설정 변경

PrintJob 인스턴스는 생성 후 언제든지 해당 설정을 변경할 수 있습니다. 이 기능에는 addPage() 호출 사이에 설정을 변경하는 것과 인쇄 작업이 전송 또는 종료된 후 설정을 변경하는 것이 포함됩니다. printer 속성과 같은 일부 설정은 개별 페이지가 아닌 전체 인쇄 작업에 적용됩니다. 이러한 설정은 start() 또는 start2() 를 호출하기 전에 지정해야 합니다.

selectPaperSize() 메서드를 호출하여 페이지 설정 대화 상자와 인쇄 대화 상자의 기본 용지 크기를 설정할 수 있습니다. 또한 인쇄 작업이 진행되는 동안 호출하여 일정 페이지 범위에 대해 용지 크기를 설정할 수도 있습니다. PaperSize 클래스에 정의된 상수를 사용하여 호출합니다. 아래 예에서는 봉투 크기 10을 선택합니다.

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

printer 속성을 사용하여 현재 인쇄 작업의 프린터 이름을 가져오거나 설정합니다. 기본적으로 기본 프린터 이름으로 설정됩니다. 사용할 수 있는 프린터가 없거나 시스템에서 인쇄를 지원하지 않는 경우에는 printer 속성 값이 null 입니다. 프린터를 변경하려면 먼저 printers 속성을 사용하여 사용 가능한 프린터 목록을 가져옵니다. 이 속성은 Vector로서 해당 String 요소가 사용 가능한 프린터 이름입니다. 프린터를 활성 프린터로 설정하려면 printer 속성을 해당 String 값 중 하나로 설정합니다. 활성 인쇄 작업의 printer 속성은 변경할 수 없습니다. start() 또는 start2() 를 성공적으로 호출한 후 작업이 전송되거나 종료되기 전에 이 속성을 변경하려고 하면 실패합니다. 다음은 이 속성을 설정하는 방법의 예입니다.

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

copies 속성은 운영 체제의 인쇄 대화 상자에 설정된 매수 값을 가져옵니다. firstPage 및 lastPage 속성은 페이지 범위를 가져옵니다. orientation 속성은 페이지 방향 설정을 가져옵니다. 이러한 속성을 설정하여 인쇄 대화 상자의 값을 재정의할 수 있습니다. 다음 예에서는 이러한 속성을 설정합니다.

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 과 관련된 다음 읽기 전용 설정은 현재 프린터 설정에 대한 유용한 정보를 제공합니다.

  • paperArea : 프린터 미디어의 사각형 경계(포인트 단위)입니다.

  • printableArea : 인쇄 가능 영역의 사각형 경계(포인트 단위)입니다.

  • maxPixelsPerInch : 현재 프린터의 실제 해상도(인치당 픽셀 수 단위)입니다.

  • isColor : 현재 프린터가 컬러 인쇄를 할 수 있는지 여부입니다. 현재 프린터가 컬러 인쇄를 할 수 있는 경우 true 를 반환합니다.

인쇄 예제: 페이지 설정 및 인쇄 옵션 을 참조하십시오.