2016-12-04 3 views
-1

무대를 인쇄하려고하면 결과가 잘못 회전됩니다. 나는 그것을 고치려고 노력했다. 적어도 행운이없이 150 가지의 다른 솔루션 페이지를 봤다. 나는 내가하려고하는 프로그래머가 아니다. 어쨌든 작동해야하지만 그렇지 않습니다. 도와 줄수있으세요?AS3 인쇄 버튼

"인쇄"버튼을 클릭하면 내 페이지 (스프라이트)를 pdf 파일로 저장하고 싶지만 기본 설정에서는 페이지가 가로 방향이어야합니다. 또한 무대에서 드로잉 (웹에서 공유 된 다른 사람의 코드 사용)이 있지만 전체 장면 (예 : 버튼)을 저장하고 싶지는 않습니다. 나는 단지 그림을 저장하고 싶다. 당신의 도움을 주셔서 감사합니다.

나는 (. 모든 심지어 그리기 작동하지 않았다 작동하지 않았다.)이 사용 나는 또한이 방법을 시도했다 (그릴 및 인쇄가 작동하지만 방향이 잘못)

btnPrint.addEventListener(MouseEvent.CLICK, onPrintClick); 
function onPrintClick(event:MouseEvent):void{ 
    var bd :BitmapData = new BitmapData(stage.width, stage.height, false); 
    bd.draw(stage); 
    var b:Bitmap = new Bitmap (bd); 
    var s:Sprite = new Sprite(); 
    s.addChild(b); 
    var myPrintjob:PrintJob = new PrintJob(); 
    myPrintjob.start(); 
    var printArea = new Rectangle(23, 65, 650, 500); 
    myPrintJob.addPage(s, printArea); 
    myPrintJob.send(); 
} 

:

btnPrint.addEventListener(MouseEvent.CLICK, onPrintClick); 
function onPrintClick(event:Event)void{ 
    var myPrintjob:PrintJob = newPrintJob; 
    myPrintjob.start(); 
    myPrintjob.addPage(this) 
    myPrintjob.send; 
} 

나는 기억이 나지 않는 코드도 시도했다. 그것은 oriented와 같았습니다. 랜드 스케이프와 회전 90, 또는 그와 비슷한 것. 그것은 또한 작동하지 않았다. 아마 나는 그것을 만들지 않았다.

답변

0

에 게시하는 경우 PrintJob.orientation을 사용하여 페이지 방향을 변경할 수 있습니다.
start()을 호출하기 전에 설정해야합니다. 코드 예제에서는이 다음과 같이합니다 : 플래시 플레이어에 대한 구축하면

btnPrint.addEventListener(MouseEvent.CLICK, onPrintClick); 
function onPrintClick(event:Event)void{ 
    var myPrintjob:PrintJob = new PrintJob(); 
    myPrintJob.orientation = PrintJobOrientation.LANDSCAPE; 
    myPrintjob.start(); 
    myPrintjob.addPage(this) 
    myPrintjob.send(); 
} 

불행하게도이 속성을 설정할 수 없습니다.

+0

답변 해 주신 데 대해 감사드립니다. 오류는 다음과 같습니다. "1059 속성은 읽기 전용입니다." 그것은 변화시키지 않습니다. 내가 할 수있는 일을 도와 줄 수 있니? –

+0

아, 죄송합니다. AIR 용으로 게시하는 경우에만 해당 속성을 설정할 수있는 것처럼 보입니다. Flash Player에서는 읽기 전용입니다. 내 대답에 메모를 추가하겠습니다. – Cadin

0

나는이 코드를 사용하여 작업을 수행했습니다. 당신의 노력에 감사드립니다.

function onPrintClick(event:Event):void{ 
var bd :BitmapData = new BitmapData(stage.width, stage.height, false); 
bd.draw(stage); 
var b:Bitmap = new Bitmap (bd); 
var s:Sprite = new Sprite(); 
s.addChild(b); 
var pj:PrintJob = new PrintJob(); 
pj.start(); 
pj.orientation = PrintJobOrientation.LANDSCAPE; 
var printArea = new Rectangle(Cw, Ch, 650, 500); 
pj.addPage(this);  
pj.send(); 
}