Các tổ chức khác nhau sử dụng các tệp PDF để trao đổi thông tin một cách an toàn và có tổ chức. Tuy nhiên, đôi khi các tệp PDF có kích thước khổng lồ do các nội dung được nhúng như hình ảnh, video, bản vẽ, v.v. Bạn có thể dễ dàng tối ưu hóa hoặc nén kích thước tệp PDF như vậy mà không ảnh hưởng đến chất lượng. Hãy để chúng tôi khám phá các kịch bản nén và tối ưu hóa kích thước PDF sau đây mà bạn có thể kết hợp trong các ứng dụng Java của mình:

API Nén và Tối ưu hóa Kích thước PDF – Cài đặt

Bạn có thể sử dụng các quy trình hiệu quả và đáng tin cậy của API Aspose.PDF for Java để tối ưu hóa hoặc nén các tệp PDF có kích thước lớn mà vẫn giữ nguyên chất lượng. Bạn có thể tải xuống tệp JAR từ Tải xuống hoặc bằng Cấu hình Maven trong dự án của mình.

Tối ưu hóa Tài liệu PDF cho Web bằng Java

Tài liệu PDF có thể được tối ưu hóa khi bạn cần sử dụng chúng trong các trang web của mình. Việc tối ưu hóa này rất hữu ích để hiển thị trang đầu tiên của tài liệu PDF nhanh nhất có thể. Bạn có thể có tệp PDF được tối ưu hóa bằng cách thực hiện theo các bước bên dưới:

  1. Tệp PDF mã nguồn mở
  2. Gọi phương pháp tối ưu hóa để tối ưu hóa PDF
  3. Lưu tệp PDF đầu ra

Đoạn mã dưới đây là một ví dụ về cách tối ưu hóa tài liệu PDF cho web trong môi trường Java của bạn:

// mở tài liệu
Document pdfDocument = new Document("Original.pdf");

// Tối ưu hóa cho web
pdfDocument.optimize();

// Lưu tài liệu đầu ra
pdfDocument.save("Optimized_output.pdf");

Nén hoặc Tối ưu hóa Kích thước của PDF chứa Hình ảnh bằng Java

Ở đây chúng ta chủ yếu sẽ thảo luận về các tình huống trong đó các tệp PDF chứa rất nhiều hình ảnh do đó có kích thước rất lớn. Chẳng hạn, một tệp PDF chứa bản vẽ cho các kiểu máy bay khác nhau và thông tin về từng bộ phận, phụ hoặc chính, được bao gồm dưới dạng hình ảnh hoặc hình ảnh của tất cả các bộ phận. Hơn nữa, nhiều tài liệu chuyên nghiệp có thể chứa hình ảnh dưới dạng tạo phẩm chính của tệp. Trong các tình huống như vậy, chúng tôi có thể nén các tệp PDF bằng các phương pháp sau:

Thu nhỏ, nén và thay đổi kích thước tất cả hình ảnh bằng Java

Bạn có thể giảm thiểu kích thước của tệp PDF chứa nhiều hình ảnh bằng cách thu nhỏ, nén và thay đổi kích thước hình ảnh. Các cải tiến về kích thước có thể đáng chú ý vì hầu hết kích thước tệp được bao phủ bởi các ảnh mà chúng tôi hiện có ý định thu nhỏ. Bạn cần làm theo các bước dưới đây để thu nhỏ, nén và thay đổi kích thước ảnh hoặc hình ảnh trong tệp PDF:

  1. Tải tệp PDF đầu vào
  2. Khởi tạo đối tượng OptimizationOptions
  3. Đặt chất lượng và độ phân giải hình ảnh
  4. Gọi phương thức optimizeResources
  5. Lưu tài liệu PDF đầu ra

Đoạn mã dưới đây cho biết cách thu nhỏ hoặc nén hình ảnh để giảm và giảm thiểu kích thước tệp PDF bằng Java:

// Tải tài liệu đầu vào
Document doc = new Document(dataDir + "Test.pdf");

// Khởi tạo đối tượng OptimizationOptions
OptimizationOptions opt = new OptimizationOptions();

// Kích hoạt tính năng nén hình ảnh
// Đặt chất lượng và độ phân giải của hình ảnh trong tệp PDF
opt.getImageCompressionOptions().setCompressImages(true);
opt.getImageCompressionOptions().setImageQuality(10);
opt.getImageCompressionOptions().setMaxResolution(150);
opt.getImageCompressionOptions().setResizeImages(true);
doc.optimizeResources(opt);

// Lưu tệp đã cập nhật
doc.save(dataDir + "compressingPDFWithImages_out.pdf");

Xóa phông chữ nhúng, luồng không sử dụng và liên kết luồng trùng lặp bằng Java

Khi bạn cần giảm kích thước tệp PDF thì mọi byte đều quan trọng. Phông chữ nhúng có thể giúp giảm kích thước tệp bằng các phương pháp khác nhau. Ví dụ: bạn có thể hủy nhúng tất cả các phông chữ hoặc bạn chỉ có thể giữ lại tập hợp con các ký tự phông chữ đang được sử dụng trong tệp PDF. Nó sẽ là một phông chữ chưa nhúng một phần mà vẫn giúp giảm thiểu kích thước tệp. Ngoài ra, bạn có thể xóa các luồng không sử dụng hoặc liên kết các luồng trùng lặp để tiết kiệm thêm dung lượng. Những tối ưu hóa PDF này sẽ làm giảm đáng kể kích thước tệp. Bạn cần làm theo các bước sau để tối ưu hóa và giảm kích thước tệp PDF:

  1. Tải tài liệu PDF đầu vào
  2. Khởi tạo đối tượng lớp OptimizationOptions
  3. Bỏ nhúng tất cả các phông chữ hoặc tập hợp con các phông chữ
  4. Liên kết các luồng trùng lặp
  5. Xóa các luồng không sử dụng

Đoạn mã sau giải thích cách nén các tệp PDF để tối ưu hóa, giảm và giảm thiểu kích thước của tài liệu PDF:

Document doc = new Document(dataDir + "Test.pdf");
OptimizationOptions opt = new OptimizationOptions();

// Một trong hai
// Unembed tất cả các phông chữ trong PDF
opt.setUnembedFonts(true);

//HOẶC
// chỉ giữ các phông chữ được nhúng cho các ký tự đã sử dụng
opt.setSubsetFonts(true);

// liên kết các luồng trùng lặp
opt.setLinkDuplcateStreams(false);

// Xóa các luồng không sử dụng
opt.setRemoveUnusedStreams(false);

// Loại bỏ các đối tượng không sử dụng
opt.setRemoveUnusedObjects(false);

doc.optimizeResources(opt);

// Lưu tệp đã cập nhật
doc.save(dataDir + "compressingPDF.pdf");

Cho đến nay, chúng ta đã thảo luận về các phương pháp tối ưu hóa chủ yếu cho các tệp PDF có hình ảnh. Bây giờ chúng ta hãy tiếp tục với một số cách khác để tối ưu hóa PDF.

Nén hoặc giảm kích thước tài liệu PDF bằng Java

Các tệp PDF thường chứa các chú thích, các trường biểu mẫu có thể chỉnh sửa và các tạo phẩm màu chiếm dung lượng chung. Hãy cùng chúng tôi khám phá các quy trình sau để nén kích thước tệp PDF.

Xóa hoặc làm phẳng chú thích để giảm kích thước bằng Java

Các tệp PDF có thể chứa rất nhiều chú thích. Ví dụ: hình mờ, nhận xét, hình dạng, v.v. Bạn có thể xóa chú thích nếu chúng không còn cần thiết nữa hoặc bổ sung thêm chú thích nếu không cần thay đổi thêm. Vui lòng làm theo các bước bên dưới để xóa hoặc làm phẳng chú thích nhằm tối ưu hóa kích thước tệp PDF:

  1. Tài liệu PDF mã nguồn mở
  2. Lặp lại qua từng trang
  3. Làm phẳng hoặc xóa chú thích
  4. Lưu tài liệu PDF đầu ra

Đoạn mã dưới đây là một ví dụ về cách xóa hoặc làm phẳng chú thích trong tài liệu PDF bằng Java:

// mở tài liệu
Document pdfDocument = new Document(dataDir + "OptimizeDocument.pdf");

// Lặp lại qua từng trang và chú thích
for (Page page : pdfDocument.getPages())
{
   for (Annotation annotation : page.getAnnotations())
    {
        // Làm phẳng chú thích
        annotation.flatten();
        
        // HOẶC xóa chú thích
        // page.getAnnotations().delete(annotation);        
    }
}
// Lưu tài liệu PDF được tối ưu hóa
pdfDocument.save(dataDir + "OptimizeDocument_out.pdf");

Xóa các trường biểu mẫu để giảm thiểu kích thước tệp PDF bằng Java

Các biểu mẫu PDF có thể điền được phổ biến khi bạn cần gửi dữ liệu trên quy mô lớn. Sau khi gửi dữ liệu, các trường biểu mẫu có thể điền có thể được xóa để tối ưu hóa và giảm thiểu kích thước tệp PDF. Bạn cần làm theo các bước dưới đây để xóa các trường biểu mẫu:

  1. Tải tài liệu PDF đầu vào
  2. Kiểm tra các trường biểu mẫu trong tài liệu PDF
  3. Lặp lại qua từng trường và làm phẳng nó
  4. Lưu tệp PDF nén đã cập nhật
// Tải mẫu PDF nguồn
Document doc = new Document(dataDir + "input.pdf");

// Làm phẳng các trường Biểu mẫu
if (doc.getForm().getFields().length > 0)
{
   for (Field item : doc.getForm().getFields())
    {
        item.flatten();
    }
}

dataDir = dataDir + "FlattenForms_out.pdf";
// Lưu tài liệu đã cập nhật
doc.save(dataDir);

Chuyển đổi không gian màu RGB sang thang độ xám để nén và tối ưu hóa PDF bằng Java

Hầu hết các tệp PDF chứa nội dung văn bản cũng có thể được thể hiện tốt trong không gian màu Thang độ xám. Hơn nữa, khi mục đích và ưu tiên là lưu từng byte thì ngay cả hình ảnh cũng có thể được chuyển đổi sang Thang độ xám vì trọng tâm là lưu trữ dữ liệu. Bạn có thể làm theo các bước dưới đây để nén và tối ưu hóa kích thước tệp PDF bằng cách chuyển đổi không gian màu RGB sang Thang độ xám:

  1. Truy cập tài liệu PDF nguồn
  2. Khởi tạo phiên bản RgbToDeviceGrayConversionStrategy
  3. Chuyển đổi không gian màu của từng màu thành Thang độ xám
  4. Lưu tệp PDF được tối ưu hóa đầu ra

Đoạn mã sau cho biết cách nén và tối ưu hóa kích thước PDF bằng cách thay đổi không gian màu trong môi trường Java:

// Tải tài liệu PDF đầu vào
Document document = new Document("input.pdf");

// Khởi tạo phiên bản RgbToDeviceGrayConversionStrategy
RgbToDeviceGrayConversionStrategy strategy = new RgbToDeviceGrayConversionStrategy();
for (int idxPage = 1; idxPage <= document.getPages().size(); idxPage++) {
	Page page = document.getPages().get_Item(idxPage);
        
        // Chuyển đổi không gian màu của mỗi trang sang Greyscale
	strategy.convert(page);
}
// Lưu tài liệu PDF đầu ra
document.save("output.pdf");

Sự kết luận

Trong bài viết này, chúng tôi đã đề cập đến các cách và cách tiếp cận khác nhau để tối ưu hóa và nén các tệp PDF để giảm kích thước. Trước hết, chúng tôi đã tối ưu hóa kích thước tệp PDF cho web bằng Java. Sau đó, chúng ta đã học cách thu nhỏ, nén và thay đổi kích thước cho hình ảnh trong tệp PDF chứa nhiều hình ảnh. Ngoài ra, chúng tôi cũng đã khám phá cách làm việc với phông chữ, luồng, chú thích, trường biểu mẫu cũng như chuyển đổi không gian màu của tài liệu PDF sang thang độ xám để có thể tạo tệp PDF có kích thước nhỏ hơn nhưng chất lượng tương tự bằng Java. Hơn nữa, trong trường hợp có bất kỳ câu hỏi nào liên quan đến chủ đề này, bạn có thể liên hệ với chúng tôi qua Diễn đàn hỗ trợ miễn phí.

Xem thêm

Thông tin: Sử dụng ứng dụng web trực tuyến mới từ Aspose, bạn có thể chuyển đổi một tập hợp hình ảnh thành video. Bạn cũng có thể muốn xem một dịch vụ khác, một dịch vụ trích xuất âm thanh từ video.