패키지flash.printing
클래스public class PrintJob
상속PrintJob Inheritance EventDispatcher Inheritance Object

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

PrintJob 클래스를 사용하면 내용을 작성하여 여러 페이지로 인쇄할 수 있습니다. 이 클래스를 통해 표시되는 내용, 동적 내용 또는 사용자의 화면에 표시되지 않는 내용을 렌더링하고, 사용자에게 단일 [인쇄] 대화 상자를 표시하며, 크기가 조절되지 않은 문서를 내용에 맞는 비율로 인쇄할 수 있습니다. 이 기능은 데이터베이스 내용 및 동적 텍스트와 같은 동적 내용을 렌더링하거나 인쇄할 때 특히 유용합니다.

인쇄 작업을 만들려면 PrintJob() 생성자를 사용합니다.

또한 PrintJob.start()로 채워진 속성을 사용하면 문서에서 페이지 높이, 폭 및 이미지 방향과 같은 사용자의 프린터 설정을 읽을 수 있으며 Flash 내용의 서식이 프린터 설정에 맞게 동적으로 지정되도록 문서를 구성할 수 있습니다. PrintJob.start()에서 채우는 사용자 레이아웃 속성은 읽기 전용이며 Flash Player에서 변경할 수 없습니다.

참고: ActionScript 3.0에서는 이전 버전의 ActionScript와 달리 PrintJob 객체를 단일 프레임으로 제한하지 않습니다. 그러나 사용자가 [인쇄] 대화 상자에서 [확인] 버튼을 클릭하면 운영 체제에서 사용자에게 인쇄 상태 정보를 표시하므로 PrintJob.addPage()PrintJob.send()를 최대한 빠르게 호출하여 페이지를 스풀러로 보내야 합니다. PrintJob.send() 호출을 포함하는 프레임에 늦게 도달하면 인쇄 과정이 지연됩니다.

또한 다음 간격에는 15초 스크립트 시간 초과 제한이 적용됩니다.

위 간격 중 하나가 15초를 초과한 경우 PrintJob 인스턴스에서 다음 번에 PrintJob.start()를 호출하면 false가 반환되고 PrintJob 인스턴스에서 다음 번에 PrintJob.addPage()를 호출하면 Flash Player에서 런타임 예외가 발생합니다.

예제를 통해 확인하십시오.

참고 사항

인쇄의 기초
페이지 인쇄


Public 속성
 속성다음에 의해 정의됨
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  orientation : String
[read-only] 인쇄할 이미지 방향입니다.
PrintJob
  pageHeight : int
[read-only] 실제로 인쇄 가능한 페이지 영역의 높이(단위: 포인트)입니다.
PrintJob
  pageWidth : int
[read-only] 실제로 인쇄 가능한 페이지 영역의 너비(단위: 포인트)입니다.
PrintJob
  paperHeight : int
[read-only] 전체 용지 높이(단위: 포인트)입니다.
PrintJob
  paperWidth : int
[read-only] 전체 용지 너비(단위: 포인트)입니다.
PrintJob
 Inheritedprototype : Object
[static] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
Public 메서드
 메서드다음에 의해 정의됨
  
하나 이상의 페이지를 인쇄할 때 사용할 수 있는 PrintJob 객체를 만듭니다.
PrintJob
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다.
EventDispatcher
  
addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void
지정된 Sprite 객체를 인쇄 스풀러에 단일 페이지로 보냅니다.
PrintJob
 Inherited
이벤트를 이벤트 흐름으로 전달합니다.
EventDispatcher
 Inherited
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher 객체에서 리스너를 제거합니다.
EventDispatcher
  
PrintJob.start() 및 PrintJob.addPage()를 성공적으로 실행한 다음 스풀된 페이지를 프린터로 보냅니다.
PrintJob
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
  
운영 체제의 [인쇄] 대화 상자를 열고 스풀링을 시작한 다음 PrintJob 읽기 전용 속성 값을 설정합니다.
PrintJob
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
 Inherited
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
이벤트
 이벤트 요약 다음에 의해 정의됨
 Inherited Flash Player가 운영 체제에서 포커스를 얻어 활성화될 때 전달됩니다.EventDispatcher
 Inherited Flash Player가 운영 체제에서 포커스를 잃고 비활성화될 때 전달됩니다.EventDispatcher
속성 정보
orientation속성
orientation:String  [read-only]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9.

인쇄할 이미지 방향입니다. 이 속성은 PrintJobOrientation 클래스의 값입니다. 이 속성은 PrintJob.start() 메서드를 호출한 후에만 사용할 수 있습니다.


구현
    public function get orientation():String

참고 사항

pageHeight속성 
pageHeight:int  [read-only]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9.

실제로 인쇄 가능한 페이지 영역의 높이(단위: 포인트)입니다. 사용자가 설정한 여백은 무시됩니다. 이 속성은 PrintJob.start() 메서드를 호출한 후에만 사용할 수 있습니다.


구현
    public function get pageHeight():int

참고 사항

pageWidth속성 
pageWidth:int  [read-only]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9.

실제로 인쇄 가능한 페이지 영역의 너비(단위: 포인트)입니다. 사용자가 설정한 여백은 무시됩니다. 이 속성은 PrintJob.start() 메서드를 호출한 후에만 사용할 수 있습니다.


구현
    public function get pageWidth():int

참고 사항

paperHeight속성 
paperHeight:int  [read-only]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9.

전체 용지 높이(단위: 포인트)입니다. 이 속성은 PrintJob.start() 메서드를 호출한 후에만 사용할 수 있습니다.


구현
    public function get paperHeight():int
paperWidth속성 
paperWidth:int  [read-only]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9.

전체 용지 너비(단위: 포인트)입니다. 이 속성은 PrintJob.start() 메서드를 호출한 후에만 사용할 수 있습니다.


구현
    public function get paperWidth():int
생성자 정보
PrintJob()생성자
public function PrintJob()

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

하나 이상의 페이지를 인쇄할 때 사용할 수 있는 PrintJob 객체를 만듭니다. PrintJob 객체를 만든 후 PrintJob.start(), PrintJob.addPage()PrintJob.send() 메서드를 순서대로 사용하여 인쇄 작업을 프린터로 보내야 합니다.

예를 들어 my_pj.addPage() 메서드 호출의 [params] 자리 표시자 텍스트를 다음 코드와 같이 사용자 정의 매개 변수로 바꿀 수 있습니다.

 // create PrintJob object
 var my_pj:PrintJob = new PrintJob();
  
 // display Print dialog box, but only initiate the print job
 // if start returns successfully.
 if (my_pj.start()) {
  
    // add specified page to print job
    // repeat once for each page to be printed
    try {
      my_pj.addPage([params]);
    }
    catch(e:Error) {
      // handle error 
    }
    try {
      my_pj.addPage([params]);
    }
    catch(e:Error) {
     // handle error 
    }
 
    // send pages from the spooler to the printer, but only if one or more
    // calls to addPage() was successful. You should always check for successful 
    // calls to start() and addPage() before calling send().
    my_pj.send();
 }
 

첫 번째 PrintJob 객체가 계속 활성 중인 상태에서 두 번째 PrintJob 객체를 만들 수 없습니다. 첫 번째 PrintJob 객체가 계속 활성 중인 상태에서는 new PrintJob()을 호출하여 두 번째 PrintJob 객체를 만들어도 두 번째 PrintJob 객체가 만들어지지 않습니다. 따라서 두 번째 PrintJob을 만들기 전에 my_pj 값을 확인해야 합니다.


오류
IllegalOperationError — 다른 PrintJob 객체가 아직 활성 상태인 경우 예외가 발생합니다.

참고 사항

메서드 정보
addPage()메서드
public function addPage(sprite:Sprite, printArea:Rectangle = null, options:PrintJobOptions = null, frameNum:int = 0):void

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9.

지정된 Sprite 객체를 인쇄 스풀러에 단일 페이지로 보냅니다. 이 메서드를 사용하기 전에는 PrintJob 객체를 만든 다음 PrintJob.start()를 사용해야 합니다. 그런 다음 인쇄 작업에 대해 PrintJob.addPage()를 한 번 이상 호출한 후 PrintJob.send()를 사용하여 스풀된 페이지를 프린터로 보냅니다. 즉, PrintJob 객체를 만든 후 PrintJob.start(), PrintJob.addPage()PrintJob.send()를 순서대로 사용하여 인쇄 작업을 프린터로 보냅니다. PrintJob.start()를 한 번 호출한 다음 PrintJob.addPage()를 여러 번 사용하여 한 번에 여러 페이지를 인쇄할 수 있습니다.

PrintJob.addPage()로 인해 Flash Player에서 예외가 발생하면(예: PrintJob.start()를 미리 호출하지 않았거나 사용자가 인쇄 작업을 취소한 경우) 이후에 PrintJob.addPage()를 호출할 때 실패하게 됩니다. 그러나 PrintJob.addPage()에 대한 이전 호출이 성공적으로 수행된 경우 마무리 PrintJob.send() 명령이 성공적으로 스풀된 페이지를 프린터로 전송합니다.

인쇄 작업에서 PrintJob.addPage() 작업을 완료하는 데 15초 이상 걸리면 다음 번에 Print.addPage()를 호출할 때 Flash Player에서 예외가 발생합니다.

printArea 매개 변수에 값을 전달하면 printArea 객체의 x y 좌표가 페이지에서 인쇄 가능 영역의 왼쪽 위 모서리(0,0 좌표)로 매핑됩니다. 인쇄 가능 영역은 PrintJob.start()로 설정된 읽기 전용 pageHeightpageWidth 속성으로 결정됩니다. 인쇄 결과는 페이지에서 인쇄 가능 영역의 왼쪽 위 모서리에 정렬되므로 printArea에 정의된 영역이 페이지의 인쇄 가능 영역보다 크면 printArea에 정의된 영역의 오른쪽 및 아래쪽에서 인쇄 결과가 잘립니다. 만일 printArea에 값을 전달하지 않았고 스테이지가 인쇄 가능 영역보다 큰 경우에도 인쇄 결과가 같은 방식으로 잘립니다.

인쇄하기 전에 Sprite 객체의 배율을 조정하려면 이 메서드를 호출하기 전에 배율 속성(flash.display.DisplayObject.scaleXflash.display.DisplayObject.scaleY 참조)을 설정하고 인쇄 후 속성을 원래 값으로 다시 설정합니다. Sprite 객체의 배율은 printArea와 관계가 없습니다. 즉, 인쇄 영역을 50 x 50픽셀로 지정하면 2500픽셀이 인쇄됩니다. Sprite 객체의 배율을 조절하면 같은 2500픽셀이 인쇄되지만 Sprite 객체가 배율이 조절된 크기로 인쇄됩니다.

Flash Player 인쇄 기능은 PostScript 프린터와 PostScript가 아닌 프린터를 지원합니다. PostScript가 아닌 프린터는 벡터를 비트맵으로 변환합니다.

매개 변수

sprite:Sprite — 인쇄할 Sprite의 인스턴스 이름입니다.
 
printArea:Rectangle (default = null) — 인쇄 영역을 지정하는 Rectangle 객체입니다.

사각형의 너비와 높이는 픽셀 값입니다. 프린터에서는 인쇄 측정 단위로 포인트를 사용합니다. 포인트는 고정된 실제 크기(1/72인치)이지만 화면상 픽셀의 크기는 특정 화면의 해상도에 따라 다릅니다. 따라서 픽셀과 포인트 사이의 변환 비율은 프린터 설정 및 Sprite의 배율 조절 여부에 따라 다릅니다. 폭이 72픽셀이고 배율이 조절되지 않은 Sprite는 폭이 1인치로 인쇄되며 이때 1포인트는 화면 해상도에 관계없이 1픽셀과 같습니다.

인치나 센티미터를 트윕 또는 포인트(1트윕은 1/20포인트)로 변환할 때 다음 등식을 사용할 수 있습니다.

  • 1포인트 = 1/72인치 = 20트윕
  • 1인치 = 72포인트 = 1440트윕
  • 1 cm = 567트윕

printArea 매개 변수가 생략되거나 잘못 전달되면 sprite의 전체 영역이 인쇄됩니다.

printArea 값을 지정하지 않고 options 또는 frameNum 값을 지정하려면 printAreanull을 전달합니다.

 
options:PrintJobOptions (default = null) — 선택 요소로서, 벡터로 인쇄할지 비트맵으로 인쇄할지를 지정하는 매개 변수입니다. 기본값은 null입니다. 이 값은 벡터 인쇄에 대한 요청을 나타냅니다. sprite를 비트맵으로 인쇄하려면 PrintJobOptions 객체의 printAsBitmap 속성을 true로 설정합니다. printAsBitmaptrue로 설정할지 여부를 판단할 때는 다음 사항에 유의하십시오.
  • 인쇄할 내용에 비트맵 이미지가 포함되어 있으면 printAsBitmaptrue로 설정하여 알파 투명도 및 색상 효과를 모두 포함시킵니다.
  • 내용에 비트맵 이미지가 포함되어 있지 않으면 이 매개 변수를 생략하여 내용을 고품질 벡터 형식으로 인쇄합니다.

options가 생략되거나 올바로 전달되지 않으면 벡터 인쇄가 사용됩니다. options 값을 지정하지 않고 frameNumber 값을 지정하려면 optionsnull을 전달합니다.

 
frameNum:int (default = 0)선택 요소로서 인쇄할 프레임을 지정하는 숫자입니다. frameNum을 전달해도 해당 프레임의 ActionScript가 호출되지는 않습니다. 이 매개 변수를 생략하면 sprite의 현재 프레임이 인쇄됩니다.

참고: Flash에서 print(), printAsBitmap(), printAsBitmapNum() 또는 printNum()을 사용하여 이전에 인쇄한 경우가 있으면 여러 프레임에 #p 프레임 레이블을 사용하여 인쇄할 페이지를 지정한 것입니다. PrintJob.addPage()를 사용하여 여러 프레임을 인쇄하려면 각 프레임에 PrintJob.addPage() 메서드를 사용해야 하며, 이때 #p 프레임 레이블은 무시됩니다. 프로그램을 통하여 이 작업을 수행하는 방법은 예제 항목을 참조하십시오.


오류
Error PrintJob.start()를 호출하지 않았거나 사용자가 인쇄 작업을 취소한 경우 예외가 발생합니다.

참고 사항

send()메서드 
public function send():void

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9.

PrintJob.start()PrintJob.addPage()를 성공적으로 실행한 다음 스풀된 페이지를 프린터로 보냅니다. PrintJob.start() 호출에 실패하거나 PrintJob.addpage()에서 예외가 발생하면 PrintJob.send()에 실패하게 됩니다. 따라서 PrintJob.send()를 호출하기 전에 PrintJob.start()에서 true를 반환하는지 확인하고 모든 PrintJob.addpage() 예외를 포착해야 합니다. 예를 들면 다음과 같습니다.

  var my_pj:PrintJob = new PrintJob(); if (my_pj.start()) { try { my_pj.addPage([params]); } catch(e:Error) { // handle error } my_pj.send(); }
  

참고 사항

start()메서드 
public function start():Boolean

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9.

운영 체제의 [인쇄] 대화 상자를 열고 스풀링을 시작한 다음 PrintJob 읽기 전용 속성 값을 설정합니다. [인쇄] 대화 상자를 사용하면 인쇄 설정을 변경할 수 있습니다. 사용자가 [인쇄] 대화 상자에서 [확인]을 클릭하여 PrintJob.start() 메서드가 성공적으로 반환되면 사용자의 현재 인쇄 설정을 나타내는 다음과 같은 읽기 전용 속성이 채워집니다.

속성유형단위설명
PrintJob.paperHeightNumber포인트전체 용지의 세로 길이입니다.
PrintJob.paperWidthNumber포인트전체 용지 너비
PrintJob.pageHeightNumber포인트페이지에서 실제로 인쇄 가능한 영역의 높이입니다. 사용자가 설정한 여백은 무시됩니다.
PrintJob.pageWidthNumber포인트페이지에서 실제로 인쇄 가능한 영역의 너비입니다. 사용자가 설정한 여백은 무시됩니다.
PrintJob.orientationString"portrait" ( flash.printing.PrintJobOrientation.PORTRAIT) 또는 "landscape"(flash.printing.PrintJobOrientation.LANDSCAPE)

참고: 사용자가 [인쇄] 대화 상자를 취소하면 속성이 채워지지 않습니다.

[인쇄] 대화 상자에서 사용자가 [확인]을 클릭하면 Flash Player는 운영 체제로 인쇄 작업을 스풀링하기 시작합니다. 그런 다음 운영 체제에서 사용자에게 인쇄 진행률 정보를 표시하기 시작하므로 PrintJob.addPage()PrintJob.send()를 최대한 빠르게 호출하여 페이지를 스풀러로 보내야 합니다. 이 메서드가 채우는 높이, 너비 및 방향의 읽기 전용 속성을 사용해 인쇄 서식을 지정할 수 있습니다.

이후에 PrintJob.addPage()PrintJob.send()를 호출하기 전에 사용자가 운영 체제의 [인쇄] 대화 상자에서 [확인]을 클릭할 때 이 메서드에서 true가 반환되는지 여부를 확인해야 합니다.

  var my_pj:PrintJob = new PrintJob(); if(my_pj.start()) { // addPage() and send() statements here }
  

특정 인쇄 작업 인스턴스에서 다음 간격 중 하나가 15초를 넘으면 다음 번에 PrintJob.start()를 호출할 때 false가 반환됩니다.

반환값
Boolean — [인쇄] 대화 상자가 표시될 때 사용자가 [확인]을 클릭하면 true 값이고 사용자가 [취소]를 클릭하거나 오류가 발생하면 false 값입니다.

참고 사항

예제 예제 사용 방법
PrintJobExample.as

다음 예제에서는 PrintJobExample 클래스를 사용하여 작은 문서를 만든 다음 이 문서를 프린터로 보냅니다. 이는 다음 단계로 이루어집니다.
  1. Sprite 유형의 두 변수인 sheet1sheet2를 선언합니다.
  2. init()를 호출하여 새 Sprite 인스턴스를 sheet1sheet2에 할당하고 다른 인수를 사용하여 createSheet()를 호출합니다.
  3. createSheet()는 다음을 수행합니다.
    1. 전달된 Sprite 객체를 사용하여 배경이 연한 회색이고 1픽셀 두께의 검정색 테두리가 있는 100 X 200 픽셀 크기의 사각형을 x = 0, y = 0에 그립니다.
    2. 이름이 txt인 새 TextField 객체를 만듭니다. 크기는 Sprite와 같고 wordWrap 속성은 true로 설정하며, text 속성은 createSheet()에 인수로 전달한 String으로 설정합니다.
    3. 전달된 Object 인수가 null이 아니면 해당 Object의 좌표 및 크기 속성을 사용하여 흰색 사각형을 그리는 데 사용되는 img라는 새 Sprite 인스턴스를 만듭니다. 흰색 사각형은 addChild()를 통해 Sprite 객체의 표시 목록에 추가됩니다.
    4. txt TextField가 addChild()를 통해 Sprite 객체의 표시 목록에 추가됩니다.
  4. 생성자로 돌아가서 주석 처리되지 않고 활성화되어 있는 인쇄 메서드가 호출됩니다. 각 메서드는 매우 비슷하므로 아래에서는 printOnePerPage() 메서드에 대해 설명합니다.
  5. printOnePerPage()는 다음을 수행합니다.
    1. pjpagesToPrint라는 새 PrintJob 객체를 uint로 선언합니다.
    2. 운영 체제별 [인쇄] 대화 상자를 열고 사용자가 OK을 클릭하기를 기다립니다.
    3. 방향을 확인하여 가로 방향이 선택된 경우 오류를 발생시키고 종료합니다.
    4. sheet1sheet2의 페이지 높이 및 폭을 설정합니다.
    5. addPage()를 사용하여 sheet1sheet2를 인쇄 스플러로 보냅니다.
    6. 인쇄할 페이지 수가 0보다 크면 스풀된 페이지를 모두 인쇄합니다.
  6. draw() 메서드를 호출하여 두 Sprite의 크기 속성을 스테이지에 맞게 조절하고 sheet2의 위치를 sheet1의 바로 오른쪽으로 조정합니다.

참고: 생성자는 필요에 따라 세 가지 인쇄 메서드(페이지당 한 장, 페이지당 두 장 또는 페이지의 위쪽 절반에 인쇄) 중 하나를 선택할 수 있도록 설정되어 있습니다. 이 예제를 제대로 실행하려면 코드 주석을 사용하여 인쇄 메서드 중 두 개를 비활성화해야 합니다. 예제는 printOnePerPage()가 호출되도록 설정되어 있습니다.

package {
    import flash.printing.PrintJob;
    import flash.printing.PrintJobOrientation;
    import flash.display.Stage;
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.geom.Rectangle;
       
    public class PrintJobExample extends Sprite {
        private var sheet1:Sprite;
        private var sheet2:Sprite;
           
        public function PrintJobExample() {
            init();
            printOnePerPage();
//            printTwoPerPage();
//            printTopHalf();
            draw();
        }
        
        private function init():void {
            sheet1 = new Sprite();
            createSheet(sheet1, "Once upon a time...", {x:10, y:50, width:80, height:130});

            sheet2 = new Sprite();
            createSheet(sheet2, "There was a great story to tell, and it ended quickly.\n\nThe end.", null);
        }
        
        private function createSheet(sheet:Sprite, str:String, imgValue:Object):void {
            sheet.graphics.beginFill(0xEEEEEE);
            sheet.graphics.lineStyle(1, 0x000000);
            sheet.graphics.drawRect(0, 0, 100, 200);
            sheet.graphics.endFill();
            
            var txt:TextField = new TextField();
            txt.height = 200;
            txt.width = 100;
            txt.wordWrap = true;
            txt.text = str;
            
            if(imgValue != null) {
                var img:Sprite = new Sprite();
                img.graphics.beginFill(0xFFFFFF);
                img.graphics.drawRect(imgValue.x, imgValue.y, imgValue.width, imgValue.height);
                img.graphics.endFill();
                sheet.addChild(img);
            }
            sheet.addChild(txt);
        }
        
        private function printOnePerPage():void {
            var pj:PrintJob = new PrintJob();
            var pagesToPrint:uint = 0;
            if(pj.start()) {                
                if(pj.orientation == PrintJobOrientation.LANDSCAPE) {    
                    throw new Error("Without embedding fonts you must print one sheet per page with an orientation of portrait.");
                }
                
                sheet1.height = pj.pageHeight;
                sheet1.width = pj.pageWidth;
                sheet2.height = pj.pageHeight;
                sheet2.width = pj.pageWidth;

                try {
                    pj.addPage(sheet1);
                    pagesToPrint++;
                }
                catch(e:Error) {
                    // do nothing
                }

                try {
                    pj.addPage(sheet2);
                    pagesToPrint++;
                }
                catch(e:Error) {
                    // do nothing
                }

                if(pagesToPrint > 0) {
                    pj.send();
                }
            }
        }
        
        private function printTwoPerPage():void {
            var pj:PrintJob = new PrintJob();
            var pagesToPrint:uint = 0;
            if(pj.start()) {                
                if(pj.orientation == PrintJobOrientation.PORTRAIT) {
                    throw new Error("Without embedding fonts you must print two sheets per page with an orientation of landscape.");
                }
                
                sheet1.height = pj.pageHeight;
                sheet1.width = pj.pageWidth/2;
                sheet2.height = pj.pageHeight;
                sheet2.width = pj.pageWidth/2;

                var sheets:Sprite = new Sprite();
                sheets.addChild(sheet1);
                sheets.addChild(sheet2);
                sheets.getChildAt(1).x = sheets.getChildAt(0).width;
                try {
                    pj.addPage(sheets);
                    pagesToPrint++;
                }
                catch(e:Error) {
                    // do nothing
                }

                if(pagesToPrint > 0) {
                    pj.send();
                }
            }
        }

        private function printTopHalf():void {
            var pj:PrintJob = new PrintJob();
            var pagesToPrint:uint = 0;
            if(pj.start()) {                
                if(pj.orientation == PrintJobOrientation.PORTRAIT) {
                    throw new Error("Without embedding fonts you must print the top half with an orientation of landscape.");
                }
                
                sheet1.height = pj.pageHeight;
                sheet1.width = pj.pageWidth/2;
                sheet2.height = pj.pageHeight;
                sheet2.width = pj.pageWidth/2;

                var sheets:Sprite = new Sprite();
                sheets.addChild(sheet1);
                sheets.addChild(sheet2);
                sheets.getChildAt(1).x = sheets.getChildAt(0).width;
                try {
                    pj.addPage(sheets, new Rectangle(0, 0, sheets.width, sheets.height/2));
                    pagesToPrint++;
                }
                catch(e:Error) {
                    // do nothing
                }

                if(pagesToPrint > 0) {
                    pj.send();
                }
            }
        }


        private function draw():void {
            var sheetWidth:Number = this.stage.stageWidth/2;
            var sheetHeight:Number = this.stage.stageHeight;
            
            addChild(sheet1);
            sheet1.width = sheetWidth;
            sheet1.height = sheetHeight;
            
            addChild(sheet2);
            sheet2.width = sheetWidth;
            sheet2.height = sheetHeight;
            sheet2.x = sheet1.width;
        }        
    }
}




 

이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서

현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/ActionScriptLangRefV3/flash/printing/PrintJob.html