如何提高purePDF的性能?

时间:2011-01-31 14:36:26

标签: flex performance api printing pdf-generation

我在Flex AIR应用程序中使用开源PurePDF库。问题在于表现:

生成PDF需要100%的CPU使用率和太长时间。

  • 我对它进行了一些分析 发现用pdf写的文字是 昂贵。这就是为什么我需要知道我的原因 可以提高性能。是 有pdf的任何字体 一代更便宜,或者 是否有一些设置或提示可以做到这一点 过程在某种程度上更好 性能

  • 其次,在图像的情况下,将该元素写入PDF时, ImageElement 生成非常昂贵。有没有办法减少处理?

同时,我找到了一种方法来减少ImageElement生成处理,方法是使用flex调整图像大小,然后将小图像的位图数据传递给图像元素。它工作正常,我已经在很大程度上减少了执行时间。还有其他人对其他问题有想法吗?

  • 有没有办法告诉PDF以块的形式工作,或者分割工作的方式可能需要更长的时间才能完成,但在生成PDF时不会阻止GUI?

请帮助 - 提前谢谢。

2 个答案:

答案 0 :(得分:0)

  

有没有办法告诉PDF以块的形式工作,或者分割工作的方式可能需要更长的时间才能完成,但是在生成PDF之前不要让GUI暂停

你可以通过生成一个线程使生成异步......我在flash中提出的最好方法是使用代码:

import flash.utils.setTimeout;
import flash.events.Event;
import flash.events.EventDispatcher;
...
    setTimeout(function():void {
        //TODO asynchronous schtuff
        dispatchEvent(new Event(Event.COMPLETE));
    }, 0);

答案 1 :(得分:0)

使用purePDF优化PDF生成的方法是通过不时地创建组件来分割purePDF组件生成的工作,并通过图像大小调整解决主要问题

由于图像需要花时间嵌入PDF中,因此在此过程中所花费的时间与图像大小成正比。

因此,首先缩小图像的大小,然后嵌入PDF(请记住,如果尺寸减小到很大,它会大大降低图像的质量)继续尝试以获得最佳尺寸,以获得足够好的质量和生成PDF的速度。

最后一件事是避免透明图像,因为他们需要更多处理只使用透明度,如果必须另外使用,否则使用白色背景的图像。