Hello Rowan, thank you for your reply. Well, to be honest, I (almost) didn't notice QuickPDF was slow in rendering until I compared it with other libraries (e.g. mupdf). I'm also a sofware developer and I'm quite paranoid when it comes to speed :-) I also know from experience that optimizations are to pe berformed exactly where the bottlenecks are and, from what I've noticed, including speed differences between GDI+ and Cairo, implementing antigrain as a renderer could lead to rendering speed improvements. Anti-Grain Geometry is something we've previously looked at but were put off by the change of license in version 2.5. I see that Foxit are using version 2.3 of the license which was BSD, rather than GPL which the new version is. Well, I guess you could use version 2.4 which is http://www.antigrain.com/license/index.html#toc0002 - distributed under a modified BSD license . The differences between 2.5 and 2.4 are quite negligible. Quick PDF Library currently uses GDI+ to help with the rendering of PDF files. We're currently working on adding support for using Cairo to assist with the rendering instead of GDI+ and after that is done we may investigate using AGG as well. We want to give our customers a few different options to choose from. Each different rendering engine has it's high points and low points. Cairo rendering is slower than GDI+ and I see no reason to use it, except if you would provide something live SVG output, for example, which I know for sure Cairo supports it natively. Performance improvements for Quick PDF Library is definitely something that is high on our priority list and in fact it's next on the list. We've already done some profiling to identify bottle-knecks and in 2012 you should start to see some nice improvements.
Great! Generally speaking performance improvements will come from examining specific PDF files and seeing how Quick PDF Library handles them -- there are an infinite number of different compositions for PDF files -- so don't hesitate to send through any PDF files which you don't think our library is processing fast enough. Well, my opinion is that you could start by comparing it with other libraries (like mupdf) in terms of rendering speed and try to achieve similar timings. Although I do prefer to work low level, I guess you could start by using http://www.point.com.mk/aggplus/ - AggPlus , which is a library which emulates GDI+ API using Antigrain. You will also find there a demo which compares agg to GDI+ in terms of timing and rendering accuracy. I must admit that font rendering in agg is something to be optimized, but I'm pretty sure you guys can do a great job (besides several tricks already mentioned on agg's mailing list) ;-) Thanks, George
|