크기, 배율 및 방향 설정

Flash Player 9 이상, Adobe AIR 1.0 이상

페이지 인쇄 단원에는 기본 인쇄 작업 단계가 자세히 설명되어 있습니다. 지정한 스프라이트의 화면 크기와 위치에 해당하는 인쇄 내용이 출력에 직접 반영됩니다. 그러나 프린터에서 인쇄할 때 다른 해상도를 사용하고, 인쇄된 스프라이트의 모양에 영향을 주는 설정이 있을 수 있습니다.

Flash 런타임은 운영 체제의 인쇄 설정을 읽을 수 있지만 이러한 속성은 읽기 전용이므로 인쇄 설정 값에 응답할 수는 있지만 설정할 수는 없습니다. 그러므로 예를 들어 프린터의 용지 크기 설정을 알아 보고 그 크기에 맞게 내용을 조정할 수 있습니다. 또한 프린터의 여백 설정과 페이지 방향도 확인할 수 있습니다. 프린터 설정에 응답하려면 인쇄 영역을 지정하거나, 화면 해상도와 프린터의 포인트 측정 단위 간에 차이를 조정하거나, 내용을 사용자 프린터의 크기나 방향 설정에 맞게 변형해야 합니다.

인쇄 영역에 사각형 사용

PrintJob.addPage() 메서드를 사용하면 인쇄할 스프라이트의 영역을 지정할 수 있습니다. 두 번째 매개 변수인 printArea 는 Rectangle 객체의 양식에 있습니다. 이 매개 변수에 값을 제공하는 옵션은 다음 세 가지입니다.

  • 다음 예제와 같이 특정 속성이 있는 Rectangle 객체를 만든 다음 addPage() 호출에서 해당 사각형을 사용합니다.

    private var rect1:Rectangle = new Rectangle(0, 0, 400, 200); 
    myPrintJob.addPage(sheet, rect1);
  • 아직 Rectangle 객체를 지정하지 않은 경우 다음 예제와 같이 호출 자체 내에서 지정할 수 있습니다.

    myPrintJob.addPage(sheet, new Rectangle(0, 0, 100, 100));
  • addPage() 호출에서 세 번째 매개 변수의 값은 제공할 계획이지만 사각형을 지정하지 않으려면 다음과 같이 두 번째 매개 변수에 null 을 사용할 수 있습니다.

    myPrintJob.addPage(sheet, null, options);

포인트와 픽셀 비교

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

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

  • 1포인트 = 1/72인치 = 20트윕

  • 1인치 = 72포인트 = 1440트윕

  • 1센티미터 = 567트윕

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

크기 조절

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

예제는 인쇄 예제: 배율 조절, 자르기 및 자동 맞춤 을 참조하십시오.

가로 또는 세로 방향으로 인쇄

Flash Player 및 AIR에서 방향 설정을 감지할 수 있으므로 다음 예제와 같이 ActionScript에 논리를 작성하여 프린터 설정에 맞게 현재 크기나 회전을 조절할 수 있습니다.

if (myPrintJob.orientation == PrintJobOrientation.LANDSCAPE) 
{ 
    mySprite.rotation = 90; 
}
참고: 용지에서 내용 방향에 대한 시스템 설정을 읽으려는 경우 PrintJobOrientation 클래스 를 가져와야 합니다. PrintJobOrientation 클래스는 페이지에서 내용 방향을 정의하는 상수 값을 제공합니다. 이 클래스를 가져오려면 다음 명령문을 사용합니다.
import flash.printing.PrintJobOrientation;

페이지 높이와 폭에 자동 맞춤

프린터 방향 설정을 처리하는 것과 비슷한 방법을 사용하면 if 문에 일부 논리를 포함함으로써 페이지 높이와 폭 설정을 읽은 후 그에 맞게 조정할 수 있습니다. 다음은 예제 코드입니다.

if (mySprite.height > myPrintJob.pageHeight) 
{ 
    mySprite.scaleY = .75; 
}

뿐만 아니라 다음 예제와 같이 페이지와 용지의 크기를 비교하여 페이지의 여백 설정을 확인할 수 있습니다.

margin_height = (myPrintJob.paperHeight - myPrintJob.pageHeight) / 2; 
margin_width = (myPrintJob.paperWidth - myPrintJob.pageWidth) / 2;