고급 인쇄 기법

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 를 반환합니다.

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