2010-07-19 34 views
6

Tôi đang tìm cách giảm kích thước PDF mà tôi tạo bằng Quartz. Tôi đang vẽ hình ảnh với CGContextDrawImage trong CGPDFContext. Những gì tôi sợ là những hình ảnh được lưu dưới dạng bitmap chứ không phải là JPEG. Có cách nào để kiểm tra điều đó và một cách để kiểm soát điều đó khi viết tệp PDF không?Giảm kích thước tệp PDF được tạo bằng Quartz2D

Tôi cũng đã thử giảm bớt kích thước hình ảnh trước khi ghi nó vào ngữ cảnh PDF nhưng tôi kết thúc bằng một tệp lớn hơn (mặc dù kích thước trang tính bằng pixel nhỏ hơn).

Cảm ơn!

+0

Bạn có thể đặt tên cho một số đặc điểm của những gì bạn đang vẽ, hình ảnh đến từ đâu và các tệp kết quả lớn đến mức nào? Bạn đã vượt qua một tập tin vào một công cụ nén pdf bên ngoài và đã nhìn vào sự khác biệt? –

+0

Hình ảnh là hình ảnh camera, được lưu trữ dưới dạng JPEG và sau đó đọc đến các đối tượng UIImage. Vì vậy, tôi vẽ một UIImage.CGImage trong CGPDFContext. Kích thước tệp sẽ là 1,2 MB cho một trang. Nếu tôi cố gắng xuống cấp, tôi lên tới 3 MB. Với một công cụ nén (bộ lọc thạch anh) nó giống như 500KB. – Kamchatka

+0

Bạn có thể cung cấp mã không? – vikingosegundo

Trả lời

1

Không có API công khai để đặt cài đặt nén hình ảnh CGPDFContext.

+0

Tôi cũng đã thử một thư viện khác với cài đặt nén sẵn có. Mô hình có vẻ tương tự: kích thước của hình ảnh không quan trọng nhiều so với kích thước của trang PDF. – Kamchatka

+0

Có lẽ thử giảm độ sâu màu trên 'CGImage' mà bạn đang viết? Một hình ảnh 16-bit sẽ là một nửa kích thước _if_ 'CGPDFContext' lưu trữ hình ảnh ở định dạng nguồn của chúng – rpetrich

+0

Tôi đã xem xét điều đó nhưng không thể tìm thấy bất kỳ API nào để giảm độ sâu của một CGImage. Bạn có biết làm thế nào để làm điều đó? – Kamchatka

0

Tôi không chắc nếu bạn cần giảm PDF trên iPhone hoặc nếu có thể chấp nhận để giảm chúng trên PC/Mac.

On PC/Mac, Adobe Acrobat Pro (một sản phẩm thương mại không bị nhầm lẫn với Adobe Reader) có một ưu PDF. Trình đơn "Adavanced"> "Trình tối ưu hóa PDF ...". Điều này có thể làm giảm hình ảnh, phông chữ, v.v. Vì cũng có một số command-line interface (using AutoBatch). Nó không phải là rẻ nhưng nó có lẽ là máy nén PDF tốt nhất hiện có.

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