Tối ưu hóa PDF bằng JavaScript

Tệp PDF là định dạng phổ biến để chia sẻ tài liệu nhưng đôi khi chúng có thể cồng kềnh, dẫn đến thời gian tải chậm hơn và yêu cầu lưu trữ tăng lên. Tối ưu hóa tệp PDF là điều cần thiết để đảm bảo trải nghiệm người dùng liền mạch, đặc biệt là trong các ứng dụng web. Do đó, trong bài đăng blog này, chúng ta sẽ khám phá cách tối ưu hóa tệp PDF bằng JavaScript.

Thư viện JavaScript để tối ưu hóa PDF

Để tối ưu hóa PDF trong ứng dụng JavaScript, chúng tôi sẽ sử dụng Aspose.PDF for JavaScript. Đây là một thư viện mạnh mẽ cho phép các nhà phát triển xử lý, thao tác và tối ưu hóa các tệp PDF bằng JavaScript. Vì vậy, hãy bắt đầu bằng cách cài đặt thư viện trước.

Tải xuống thư viện và làm theo hướng dẫn cài đặt được cung cấp tại đây: Cách cài đặt Aspose.PDF for JavaScript.

Tối ưu hóa PDF bằng JavaScript

Trước khi đi sâu vào quy trình tối ưu hóa PDF, hãy hiểu lý do tại sao việc tối ưu hóa tệp PDF lại quan trọng:

  • Thời gian tải nhanh hơn: Các tệp PDF được tối ưu hóa tải nhanh hơn, nâng cao trải nghiệm người dùng bằng cách giảm thời gian chờ đợi.
  • Hiệu quả băng thông: Kích thước tệp nhỏ hơn giúp giảm mức tiêu thụ băng thông, giúp chia sẻ và tải xuống tệp PDF dễ dàng hơn.
  • Dung lượng lưu trữ: Các tệp PDF được tối ưu hóa sẽ chiếm ít dung lượng lưu trữ hơn, điều này đặc biệt quan trọng khi xử lý một số lượng lớn tài liệu.

Bây giờ chúng ta hãy viết tập lệnh để tối ưu hóa tệp PDF theo các bước dưới đây.

  • Đầu tiên, hãy chọn file PDF mà bạn cần tối ưu hóa.
  • Sau đó, tạo đối tượng FileReader để đọc tệp.
  • Sau đó, gọi hàm AsposePdfOptimize để tối ưu hóa tệp PDF. Các tham số của hàm này bao gồm tên của tệp PDF kết quả.
  • Hàm AsposePdfOptimize trả về một đối tượng JSON và sử dụng json.errorCode, bạn có thể kiểm tra xem tệp PDF có được tối ưu hóa thành công hay không. Nếu mã lỗi là 0 thì tệp PDF sẽ được tối ưu hóa mà không gặp bất kỳ sự cố nào. Nếu không, đã xảy ra lỗi mà bạn có thể đọc từ json.errorText.
  • Cuối cùng, gọi hàm DownloadFile để tạo liên kết đến tệp PDF được tối ưu hóa.

Đoạn mã sau đây cho biết cách tối ưu hóa tệp PDF trong JavaScript.

var ffileOptimize = function (e) {
  const file_reader = new FileReader();
  file_reader.onload = (event) => {
    
    /*optimize a PDF-file and save the "ResultOptimize.pdf"*/
    const json = AsposePdfOptimize(event.target.result, e.target.files[0].name, "ResultOptimize.pdf");
    if (json.errorCode == 0) document.getElementById('output').textContent = json.fileNameResult;
    else document.getElementById('output').textContent = json.errorText;
    
    /*make a link to download the result file*/
    DownloadFile(json.fileNameResult, "application/pdf");
  };
  file_reader.readAsArrayBuffer(e.target.files[0]);
};

Sử dụng Web Worker trong tối ưu hóa PDF

Trong phần trước, chúng tôi chỉ cần tải một tệp PDF, tối ưu hóa nó và tải xuống tệp PDF thu được. Bây giờ, hãy sử dụng web worker để quá trình tối ưu hóa diễn ra suôn sẻ hơn và ngăn luồng UI bị chặn. Tập lệnh sau đây cho biết cách viết một nhân viên web sử dụng chức năng tối ưu hóa PDF mà chúng tôi đã viết ở phần trước.

/*Create Web Worker*/
const AsposePDFWebWorker = new Worker("AsposePDFforJS.js");
AsposePDFWebWorker.onerror = evt => console.log(`Error from Web Worker: ${evt.message}`);
AsposePDFWebWorker.onmessage = evt => document.getElementById('output').textContent = 
  (evt.data == 'ready') ? 'loaded!' :
    (evt.data.json.errorCode == 0) ?
      `Result:\n${DownloadFile(evt.data.json.fileNameResult, "application/pdf", evt.data.params[0])}` :
      `Error: ${evt.data.json.errorText}`;

/*Event handler*/
const ffileOptimize = e => {
  const file_reader = new FileReader();
  file_reader.onload = event => {
    
    /*Optimize a PDF-file and save the "ResultOptimize.pdf" - Ask Web Worker*/
    AsposePDFWebWorker.postMessage(
      { "operation": 'AsposePdfOptimize', "params": [event.target.result, e.target.files[0].name, "ResultOptimize.pdf"] },
      [event.target.result]
    );
  };
  file_reader.readAsArrayBuffer(e.target.files[0]);
};

/*Make a link to download the result file*/
const DownloadFile = (filename, mime, content) => {
    mime = mime || "application/octet-stream";
    var link = document.createElement("a"); 
    link.href = URL.createObjectURL(new Blob([content], {type: mime}));
    link.download = filename;
    link.innerHTML = "Click here to download the file " + filename;
    document.body.appendChild(link); 
    document.body.appendChild(document.createElement("br"));
    return filename;
  }

Tối ưu hóa tài nguyên PDF bằng JavaScript

Một phương pháp khác để tối ưu hóa tệp PDF là loại bỏ các tài nguyên không sử dụng và nối các tài nguyên chung vào một đối tượng. Để tối ưu hóa tài nguyên PDF, Aspose.PDF cung cấp chức năng AsposePdfOptimizeResource. Đoạn mã sau đây trình bày cách tối ưu hóa tài nguyên PDF trong JavaScript.

var ffilePdfOptimizeResource = function (e) {
  const file_reader = new FileReader();
  file_reader.onload = (event) => {
    
    /*Optimize resources a PDF-file and save the "ResultPdfOptimizeResource.pdf"*/
    const json = AsposePdfOptimizeResource(event.target.result, e.target.files[0].name, "ResultPdfOptimizeResource.pdf");
    if (json.errorCode == 0) document.getElementById('output').textContent = json.fileNameResult;
    else document.getElementById('output').textContent = json.errorText;
    
    /*Make a link to download the result file*/
    DownloadFile(json.fileNameResult, "application/pdf");
  };
  file_reader.readAsArrayBuffer(e.target.files[0]);
};

Nhận thư viện PDF JavaScript miễn phí

Nhận giấy phép tạm thời miễn phí và sử dụng thư viện tối ưu hóa JavaScript PDF của chúng tôi mà không có bất kỳ giới hạn nào.

Phần kết luận

Tối ưu hóa tệp PDF là rất quan trọng để đảm bảo hiệu suất và trải nghiệm người dùng tối ưu trong các ứng dụng web. Aspose.PDF for JavaScript cung cấp một bộ công cụ mạnh mẽ để tối ưu hóa tài liệu PDF một cách hiệu quả. Trong bài đăng trên blog này, chúng tôi đã cung cấp cho bạn một phương pháp dễ thực hiện để tối ưu hóa các tệp PDF bằng JavaScript. Bằng cách sử dụng phương pháp tối ưu hóa PDF này, bạn có thể cải thiện đáng kể việc quản lý tài liệu tổng thể trong các ứng dụng web của mình.

Khám phá thêm về thư viện JavaScript PDF của chúng tôi trong tài liệu. Trong trường hợp bạn có bất kỳ thắc mắc nào, vui lòng chia sẻ chúng với chúng tôi qua diễn đàn của chúng tôi.

Xem thêm