Apache flex 如何提高purePDF的性能?
我在Flex AIR应用程序中使用开源PurePDF库。问题在于性能: 生成PDF需要100%的CPU使用率和太长的时间Apache flex 如何提高purePDF的性能?,apache-flex,performance,api,printing,pdf-generation,Apache Flex,Performance,Api,Printing,Pdf Generation,我在Flex AIR应用程序中使用开源PurePDF库。问题在于性能: 生成PDF需要100%的CPU使用率和太长的时间 我对它做了一些分析,并且 发现以pdf格式编写的文本是 昂贵的。这就是为什么我需要知道我该怎么做 可以提高性能。是 是否有pdf格式的字体 发电成本较低,或者 是否有一些设置或提示可以做到这一点 在以下方面处理得更好一些 表演 其次,对于图像,ImageElement生成在将元素写入PDF时非常昂贵。有没有办法减少处理 与此同时,我找到了一种减少ImageElement生
- 我对它做了一些分析,并且 发现以pdf格式编写的文本是 昂贵的。这就是为什么我需要知道我该怎么做 可以提高性能。是 是否有pdf格式的字体 发电成本较低,或者 是否有一些设置或提示可以做到这一点 在以下方面处理得更好一些 表演
- 其次,对于图像,ImageElement生成在将元素写入PDF时非常昂贵。有没有办法减少处理
- 是否有任何方法可以告诉PDF分块工作,或者以这样的方式划分工作,即可能需要更多的时间来完成,但不会在生成PDF时阻塞GUI
import flash.utils.setTimeout;
import flash.events.Event;
import flash.events.EventDispatcher;
...
setTimeout(function():void {
//TODO asynchronous schtuff
dispatchEvent(new Event(Event.COMPLETE));
}, 0);
使用purePDF优化PDF生成的方法是通过不时创建组件将purePDF组件生成的工作分块进行,并通过图像大小调整解决主要问题 因为图像需要时间来嵌入到PDF中,并且在这个过程中所花费的时间与图像大小成正比 因此,首先减小图像的大小,然后将其嵌入PDF(请记住,如果图像的大小被大幅度减小,则会大大降低图像的质量)继续试验,以获得最佳大小,从而使PDF生成具有足够的质量和速度
最后一件事是避免使用透明图像,因为它们需要更多的处理,仅在需要时使用透明,否则使用白色背景的图像 正如在问题中提到的,它需要全部CPU,即使我按照您的要求这样做,我也无法处理purePDF工作,因为它在内部完成所有工作,即使您让purePDF在单独的线程中完成它的工作,GUI也会停止吗?即使它占用了整个CPU,如果它正在做一些事情,比如写一个文件,那么它的线程应该偶尔暂停,这样你的GUI线程就可以继续…在flex中没有线程,即使asyc进程不是扩展线程flex也没有线程。最后,每件事都以时间线的框架结束,就像在flash中一样,因为flex在flash player中运行。这有点傻,只有文件加载可以异步完成。。。很抱歉浪费了您的时间。@jswolf19:正如moon所说,您实际上并没有产生线程。您所做的是将函数的执行推迟到下一帧,在下一帧中它将同步运行。