AS3印刷@ 300 dpi - 打印作业

AS3印刷@ 300 dpi - 打印作业

问题描述:

我有2490x3510像素(300dpi A4)的图像,需要从flash-as3打印。 从它看起来,Printjob/options没有DPI设置或值(谢谢adobe: - /)。AS3印刷@ 300 dpi - 打印作业

那么有谁知道如何以300 dpi直接从as3打印?

注:我确实需要直接从as3打印。我已经有一个选项输出到PDF @ 300dpi,但我也想让用户直接从闪光灯打印。

很多谢谢。

我大量的研究和浪费小时/天自己的答案:

AS3 PRINTJOB是没用的,它有时会产生正确的DPI,有时不会,这一切取决于您的打印机设置,操作系统和浏览器。 (感谢Adobe让我的人生成为一场噩梦)。

现在,你也可以使用FlexPrintJob,添加图像作为一个元素/儿童(来源300DPI),提醒用户他们需要设置自己的“打印机设置” 300dpi的那么所有的作品(WIN + MacOS的测试): - )

我对Adobe非常失望,他们应该放弃PrintJob并重新开始。

希望这有助于(至少为flex)。

+0

你能分享一个你的解决方案的例子吗?您是否还尝试使用不在PageSize类中列出的diff页面大小进行打印? – StephenNYC 2012-10-09 15:31:55

+0

能够找到适合我的解决方案。请参阅http://www.mail-archive.com/[email protected]/msg32914.html。我使用PrintJob。 – StephenNYC 2012-10-10 03:59:25

看起来flash.printing.PrintJobOptions.pixelsPerInch仅限于AIR,如果您不使用AIR,则仅限于用户打印机的设置。

似乎你可以做的最好的事情是要求你的用户确保他们检查“缩小到页面”选项,除非你使用AIR。

您可以设置任何图像分辨率以在Web应用程序中打印。你只是这样做之前的PrintJob。 这是对我有用的方式。 使用Loader下载图片后(无论您想要什么样的分辨率),设置PrintJob的变量。

 var btm:Bitmap = Bitmap(yourLoader.content); 
     var btmData:BitmapData = btm.bitmapData; 
     var matrix:Matrix = new Matrix(); 
     matrix.scale(612/btmData.width, 791/btmData.height); // '612' and '791' ensure that the image would fit standard page 
     yourImagePrintSprite.graphics.beginBitmapFill(btmData, matrix, false); 
     yourImagePrintSprite.graphics.lineStyle(1,0x000000, 0); // this rectangle (frame) serves as canvas for the BitmapFill; without it the image is not rendered. 
     yourImagePrintSprite.graphics.drawRect(0, 0, 612, 791); 
     yourImageSprite.graphics.endFill(); 

当然,分辨率越高 - 更好的打印,但在更大的文件大小为代价的,所以尝试不同的分辨率,以找到其最小的为您提供满意的结果。

HTH, 伊戈尔·鲍罗廷

+0

这肯定不起作用?由于打印机仍然只能每英寸放72个点? – WORMSS 2011-09-16 08:20:55

也有同样的问题。这个帮助了我很多http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7cc6.html

引用来自链接“如果您想在打印Sprite对象之前缩放它,请在调用PrintJob.addPage()方法之前设置缩放属性(请参阅调整大小和缩放对象)并在打印后将它们设置为原始值,Sprite对象的缩放与printArea属性无关,换句话说,如果指定的打印区域为50像素×50像素,则会打印2500像素。缩放Sprite对象,同样打印2500个像素,但Sprite对象以缩放后的尺寸打印。“

换句话说 - 您应该使用printJob.pageHeight和printJob.pageWidth并根据printJob之前的值缩放Sprite。addPage致电