2011-01-31 46 views
7

Tôi đang sử dụng thư viện PurePDF nguồn mở trong ứng dụng Flex AIR của mình. Vấn đề là hiệu suất:cách cải thiện hiệu suất của purePDF?

Mất 100% mức sử dụng CPU và quá dài để tạo tệp PDF.

  • Tôi đã làm một số phân tích về nó và thấy rằng việc viết văn bản trong pdf là tốn kém. Đó là lý do tại sao tôi cần biết làm thế nào tôi có thể cải thiện hiệu suất. Có phải có phông chữ nào mà pdf thế hệ ít tốn kém hơn hoặc có một số cài đặt hoặc mẹo có thể làm cho quy trình này tốt hơn một chút về hiệu suất không?

  • thứ hai trong trường hợp hình ảnh là thế hệ ImageElement rất tốn kém khi viết phần tử đó thành PDF. Có cách nào để giảm chế biến không?

Trong khi đó, tôi tìm thấy một cách để giảm bớt việc xử lý thế hệ ImageElement bởi thay đổi kích thước hình ảnh sử dụng flex và sau đó thông qua dữ liệu bitmap hình ảnh nhỏ để các yếu tố hình ảnh. Nó hoạt động tốt, và tôi đã giảm thời gian thực hiện đến một mức độ tốt. Có ai khác có ý tưởng về các vấn đề khác không?

  • là có cách nào để yêu cầu PDF hoạt động theo khối

Xin vui lòng trợ giúp - cảm ơn trước.

Trả lời

0

cách để tối ưu hóa hệ PDF với purePDF là để phân chia công việc của việc tạo thành phần purePDF trong các khối bởi creati ng các thành phần theo thời gian và vấn đề chính được giải quyết bằng cách thay đổi kích thước hình ảnh

Như hình ảnh cần thời gian để nhúng vào PDF và thời gian thực hiện trong quy trình này tỷ lệ thuận với kích thước hình ảnh.

Vì vậy, đầu tiên giảm kích thước của hình ảnh và sau đó nhúng vào PDF (Hãy nhớ nếu kích thước được giảm đến một quy mô lớn nó sẽ làm giảm chất lượng hình ảnh rất nhiều) tiếp tục thử nghiệm để có được kích thước tối ưu để có đủ tốt chất lượng và tốc độ cho việc tạo PDF.

Điều cuối cùng là tránh hình ảnh trong suốt vì chúng cần xử lý nhiều hơn chỉ sử dụng độ trong suốt nếu cần phải sử dụng hình ảnh khác với nền trắng.

0

là có cách nào để nói với PDF sang làm việc trong khối hoặc chia công việc theo một cách như vậy mà nó có thể mất nhiều thời gian hơn để hoàn thành nhưng không làm cho GUI dừng lại cho đến khi PDF được tạo ra

Bạn có thể làm cho không đồng bộ hệ bằng cách đẻ trứng một chủ đề ... cách tốt nhất mà tôi đã đưa ra để làm như vậy trong flash là với mã:

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

như đã đề cập trong Câu hỏi rằng phải mất toàn bộ CPU ngay cả khi tôi yêu cầu tôi không bao giờ có thể xử lý purePDF khi làm tất cả các hoạt động bên trong – Badr

+0

Thậm chí nếu bạn có purePDF, nó hoạt động trong một luồng riêng biệt, GUI bị tạm dừng? Ngay cả khi nó đang lấy CPU đầy đủ, nếu nó đang làm một cái gì đó như viết một tập tin, sau đó nó là thread nên được tạm dừng đôi khi để thread GUI của bạn có thể tiếp tục ... – jswolf19

+0

trong flex không có luồng ngay cả một quá trình asyc không phải là một lây lan thread flex cũng không phải luồng. ở cuối mỗi điều kết thúc trong khung thời gian như trong flash nguyên nhân flex là trong đèn flash kết thúc chạy trong flash player .. – Badr

Các vấn đề liên quan