요약 요약
Google은 사용자가 그 안에 포함 된 콘텐츠를 읽고, 상호 작용하고, 인쇄 할 수있는 플래시 응용 프로그램 (AS3)을 제공합니다. 최근 Chrome에서 인쇄 할 때 콘텐츠가 생략되고 빈 페이지가 인쇄됩니다 (빈 페이지는 Chrome의 인쇄 미리보기에도 표시됨). Chrome 버전 "21.0.1180.83"(플래시 버전 "11.3.31.230"사용)에서이 문제가 발생합니다. 다른 브라우저에서는 재현 할 수 없습니다.플래시 인쇄 - 크롬이 스프라이트 인쇄를 생략합니다.
기술적 세부 사항
콘텐츠의 각 페이지는 스프라이트로 표시됩니다. 내용을 올바르게 렌더링하기 위해 크기 조정/크기 조정을 수행합니다. 비트 맵을 사용하여이를 수행합니다. 새 BitmapData 객체 (bMapData)을 만들고 페이지의 스프라이트를 그립니다. (bMapData)을 가져 와서 새로운 비트 맵 객체 (bMap)을 만듭니다. 마지막으로 새로운 Sprite 객체 (sObj)을 만들고 (bMap)을 자식으로 추가합니다. (sObj)은 빈 페이지를 렌더링합니다.
private function printAsBitmap(sprite:Sprite):void{
var bitmapData:BitmapData = new BitmapData(sprite.width, sprite.height, false, 0xffffff);
bitmapData.draw(sprite);
var bitmap:Bitmap = new Bitmap(bitmapData);
var newSprite:Sprite = new Sprite();
newSprite.addChild(bitmap);
printSprite(newSprite);
}
private function printSprite(clip:Sprite) {
var printJob:PrintJob = new PrintJob();
var jobOptions:PrintJobOptions = new PrintJobOptions();
jobOptions.printAsBitmap=false;
var numPages:int = 0;
var printArea:Rectangle;
var printHeight:Number;
var printY:int = 0;
if (printJob.start()) {
/* Resize movie clip to fit within page width */
if (clip.width > printJob.pageWidth) {
clip.width = printJob.pageWidth;
clip.scaleY = clip.scaleX;
}
/* Store reference to print area in a new variable! Will save on scaling calculations later... */
printArea = new Rectangle(0, 0, printJob.pageWidth/clip.scaleX, printJob.pageHeight/clip.scaleY);
numPages = Math.ceil(clip.height/printJob.pageHeight);
/* Add pages to print job */
for (var i:int = 0; i < numPages; i++) {
//printJob.addPage(clip, printArea);
printJob.addPage(clip,null,jobOptions);
printArea.y += printArea.height;
}
/* Send print job to printer */
printJob.send();
/* Delete job from memory */
printJob = null;
}
}
사람은 "해결 방법"에 대한 제안이 있습니까 :
나는이 문제를 재현하는 데 사용할 수있는 몇 가지 샘플 코드를 포함 시켰습니다?
모든 도움을 주실 수 있습니다! 인쇄 내용이 무대에 있어야한다 - - 파일에 대한
참고 - Chromium 팀에 버그를 제출했습니다. [여기]를 클릭하십시오. (http://code.google.com/p/chromium/issues/detail?id=144974#c1) – arctek
newSprite가 무대에 표시 될 수 없는데이 위치에 추가 할 수 있습니까? 먼저 무대? 무대에없는 클립이 인쇄되지 않는 인쇄 문제가 발생했습니다. –
답장을 보내 주셔서 감사합니다. Chromium 팀에 제출 한 버그 신고서에이 동작을 보여주는 샘플 앱을 첨부했습니다. [여기를 클릭하십시오] (http://code.google.com/p/chromium/issues/detail?id=144974#c1) 소스를 보거나 다운로드하십시오. – arctek