2011-02-09 28 views
5

Tôi đang làm việc trên một công cụ sẽ ghi các tệp PDF và đang cố gắng tìm cách nén các đối tượng và luồng trong PDF. Một số tệp PDF mà tôi tạo ra khá lớn, nhưng có thể giảm đáng kể bằng cách nén các đối tượng (hoặc hầu hết cấu trúc PDF) thành một luồng flate. Tôi thề tôi đã thấy điều này được thực hiện trước đây, nhưng không có tệp PDF nào mà tôi đã xem xét dường như làm điều đó. Tôi cũng đã thử sử dụng Acrobat X để nén nó bằng "nén toàn bộ tệp", nhưng dường như chỉ nén luồng.Nén toàn bộ PDF

Tôi đã thử sử dụng ObjStm, nhưng nó không có nhiều hỗ trợ từ các trình đọc tệp khác. Tôi cần thứ gì đó có thêm một chút hỗ trợ bên ngoài Adobe.

Bất kỳ đề xuất nào được đánh giá cao!

+0

http://schnaader.info/precomp.php – Shelwien

Trả lời

2

Trong PDF bạn có thể có 2 loại nén:

  1. dòng nén - dữ liệu được nén bằng các phương pháp khác nhau, nhưng cấu trúc file PDF không được nén.
  2. nén đối tượng - bạn cũng nén cấu trúc tệp, chủ yếu là các đối tượng không bao gồm luồng.

Đây là các trường hợp nén được hỗ trợ duy nhất trong PDF. Việc chọn phương pháp nén phù hợp phụ thuộc nhiều vào dữ liệu bạn muốn nén: đối với luồng nội dung trang thường là nén Flate được sử dụng, hình ảnh 1bpp sử dụng CCITT G4 hoặc JBIG2 tốt hơn, hình ảnh màu được nén tốt hơn với JPEG2000, v.v.

Nén đối tượng có sẵn từ Acrobat 6.

1

Bạn cũng có thể xem liệu bạn có thể giảm kích cỡ của dữ liệu (tức là phông chữ được subsetted, là hình ảnh ở dpi tối ưu, tệp có chứa đối tượng chết) không.

1

Kiểm tra PDF Specification, phần 7.5.7 (Luồng đối tượng) và 7.5.8 (Luồng tham chiếu chéo).

Tôi tích cực rằng iText có thể đọc và ghi các tệp này, nhưng tôi không bao giờ sử dụng nó theo cách đó vì kết quả khó gỡ lỗi hơn đáng kể. Có thể có một mẫu PDF ... nhưng tôi không thấy bất kỳ tệp nào.

Tôi đã hy vọng một trong những mẫu iText in Action phiên bản thứ 2 được bao phủ trong luồng đối tượng, nhưng không tìm thấy.

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