как улучшить производительность purePDF? - PullRequest
7 голосов
/ 31 января 2011

Я использую библиотеку PurePDF с открытым исходным кодом в приложении Flex AIR.Проблема заключается в производительности:

Требуется 100% загрузки процессора и слишком много времени для создания PDF.

  • Я провел некоторый анализ и обнаружил, что написание текстав PDF это дорого.Вот почему мне нужно знать, как я могу улучшить производительность.Существуют ли какие-либо шрифты, для которых генерация PDF дешевле, или есть какие-то настройки или советы, которые могут сделать этот процесс несколько лучше с точки зрения производительности?

  • во-вторых, в случае изображений ImageElement генерация очень дорогая при записи этого элемента в PDF.Есть ли способ уменьшить обработку?

Тем временем я нашел способ уменьшить обработку генерации ImageElement, изменив размер изображения с помощью flex и затем передавая растровое изображение малого изображенияданные к элементу изображения.Это отлично работает, и я сократил время выполнения в значительной степени.У кого-нибудь еще есть идеи по поводу других проблем?

  • Есть ли какой-нибудь способ заставить PDF работать в блоках или разделить работу таким образом, что это может занять больше времени для завершения, но выиграл?Не блокировать графический интерфейс при создании PDF?

Пожалуйста, помогите - заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2011

Способ оптимизации генерации PDF с помощью purePDF состоит в том, чтобы разделить работу генерации компонентов purePDF на куски, создавая компоненты время от времени, и основная проблема решается путем изменения размера изображения

Поскольку для вставки изображений в PDF требуется время, а время, затрачиваемое на эти процессы, прямо пропорционально размеру изображения.

Итак, сначала уменьшите размер изображения, а затем вставьте его в PDF (имейте в виду, что при уменьшении размеров до большого масштаба качество изображения значительно снизится) продолжайте экспериментировать, чтобы получить оптимальный размер, чтобы получить достаточно хорошее качество и скорость генерации PDF.

Последнее, что нужно избегать прозрачных изображений, так как они требуют большей обработки, используют прозрачность, только если это необходимо, в противном случае используйте изображения с белым фоном.

0 голосов
/ 03 февраля 2011

есть ли способ заставить PDF работать в блоках или разделить работу таким образом, что выполнение может занять больше времени, но не останавливайте графический интерфейс, пока не будет создан PDF

Вы можете сделать генерацию асинхронной, порождая поток ... Лучший способ, которым я придумал сделать это во флэш-памяти, - это код:

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