2014-06-16 2 views
-1

사용자가 먼저 데이터를 삽입 한 다음 정렬 된 표 양식으로 데이터를 인쇄하는 앱이 있습니다. 하지만 하나의 비 선택적 매개 변수 "Sprite"만 사용하는 사용자 지정 클래스 FilePrinter를 사용하여 최종 문서를 인쇄 할 때 문제가 있습니다. 나는 명확하고 올바르게 코드를 따르지만, 인쇄 할 때 인쇄 된 문서는 분명 페이지 일뿐입니다. 왜 이렇게 이해가 안되니? 그러나 주목해야 할 것은 스프라이트가 이미지로 구성되어 있고 (정상적인 해상도가 아님) 인쇄 준비가되면 인쇄 된 문서의 크기가 많이 (라운드 약 12mb ~ 15mb)됩니다. 아무도 문제에 대해 알고 있다면 제발 도와주세요. 감사합니다 ...!큰 스프라이트를 as3으로 인쇄하는 방법

var rslt:MovieClip = new MAIN_DOC(); 

rslt.box1.text = arr[0].toString(); 
rslt.box2.text = arr[1].toString(); 
rslt.box3.text = arr[2].toString(); 
rslt.box4.text = arr[3].toString(); 
rslt.box5.text = arr[4].toString(); 
rslt.box6.text = arr[5].toString(); 

var BackM:MovieClip = new BackGround(); 

BackM.PIcont.addChild(picData); 

var sprite:Sprite = new Sprite(); 
sprite.addChild(BackM); 
sprite.addChild(rslt); 

var print:FilePrinter = new FilePrinter(sprite); 
function printBtnClick(e:MouseEvent):void 
{ 
    print.print(); 
} 

FilePrinter Class 구성 Actionscript documentation에서

public class FilePrinter { 
    private var pJob:PrintJob; 
    private var opt:PrintJobOptions = new PrintJobOptions(true); 
    private var sp:Sprite; 
    public function FilePrinter(sprite:Sprite) { 
     sp = new Sprite(); 
     sp = sprite; 
     pJob = new PrintJob(); 
     if (pJob.start()) 
     { 
      pJob.addPage(sp, null, opt); 
     } 
    } 
    public function startPrint():void { 
     pJob.send(); 
    } 
} 
+0

'FilePrinter'는 어디에서 왔습니까? 어디서나 해당 설명서를 찾을 수 없습니다. – CyanAngel

+0

이 클래스의 코드를 포함하고 예제를 어디에서 가져 왔는지는이 문제를 확인하는 데 도움이됩니다. – CyanAngel

+0

어디서나 "FilePrinter"를 가져 오지 않았습니다. 그것은 스스로 만든 맞춤 클래스 일뿐입니다. 이 문제는이 클래스를 사용하지 않고 간단한 AS3 코드를 사용하여 인쇄 할 때도 마찬가지입니다. –

답변

1

: 또한

, 15 초 스크립트 시간 제한은 다음 간격에 적용

  • 에 PrintJob.start을()와 첫 번째 Prin tJob.addPage()

  • 에 PrintJob.addPage()와 다음에 PrintJob.addPage()

  • 마지막() 및 PrintJob.send()

있는 경우 위 간격 중 15 초 이상이 지나면 PrintJob 인스턴스에서 PrintJob.start()를 호출하면 false가 반환되고 PrintJob 인스턴스의 다음 PrintJob.addPage()로 인해 Flash Player 또는 Adobe AIR에서 런타임 예외가 발생합니다 .

내가 버튼을 눌러 이벤트가 트리거 될 때까지 FilePrinter 클래스를 initalising하지 않는 것이 좋습니다 것

은 또한 당신의 버튼 클릭 리스너에 print()를 호출하는 것 같다,하지만 이러한 기능은, 당신의 FilePrinter 클래스 startPrint()

없다
var print:FilePrinter; 
function printBtnClick(e:MouseEvent):void 
{ 
    print = new FilePrinter(sprite); 
    print.startPrint(); 
} 
+0

이것은 중요하지 않습니다. 실수로'print()'를 적어두고, 실제 문서에서는'startPrint' 함수를 호출합니다. 15 초를 초과하여 본다면 적용 할 필요가 없습니다. 왜냐하면 15 초는 플래시 플레이어가 실제로 가져 오는 시간보다 더 길기 때문입니다. 플래시 플레이어는 인쇄 대화 상자를 시작하는 데 최대 3 ~ 5 초 정도 걸립니다. 버튼 누르기 이벤트가 트리거 된 후에'FilePrinter' 클래스가 초기화되면 문제는 동일하게 유지됩니다. 이것은 실제로 이해할 수없는 문제입니다. 왜 인쇄 된 페이지가 단지 깨끗한 페이지인지는 알 수 없습니다. –

관련 문제