Оптимизировать PDF в JavaScript

PDF-файлы являются распространенным форматом для обмена документами, но иногда они могут быть громоздкими, что приводит к замедлению загрузки и увеличению требований к хранению. Оптимизация PDF-файлов необходима для обеспечения бесперебойной работы пользователя, особенно в веб-приложениях. Поэтому в этом сообщении блога мы рассмотрим, как оптимизировать PDF-файлы с помощью JavaScript.

Библиотека JavaScript для оптимизации PDF

Для оптимизации PDF в приложении JavaScript мы будем использовать Aspose.PDF for JavaScript. Это мощная библиотека, которая позволяет разработчикам обрабатывать, манипулировать и оптимизировать PDF-файлы с помощью JavaScript. Итак, давайте начнем с установки библиотеки.

Загрузите библиотеку и следуйте инструкциям по установке, представленным здесь: Как установить Aspose.PDF for JavaScript.

Оптимизация PDF в JavaScript

Прежде чем углубиться в процесс оптимизации PDF, давайте поймем, почему так важно оптимизировать PDF-файлы:

  • Ускоренная загрузка. Оптимизированные PDF-файлы загружаются быстрее, что повышает удобство работы пользователей за счет сокращения времени ожидания.
  • Эффективность использования полосы пропускания. Меньшие размеры файлов приводят к снижению потребления полосы пропускания, что упрощает совместное использование и загрузку PDF-файлов.
  • Место для хранения: оптимизированные PDF-файлы занимают меньше места, что особенно важно при работе с большим количеством документов.

Давайте теперь напишем сценарий для оптимизации PDF-файла, выполнив следующие шаги.

  • Сначала выберите PDF-файл, который необходимо оптимизировать.
  • Затем создайте объект FileReader для чтения файла.
  • После этого вызовите функцию AsposePdfOptimize для оптимизации PDF. Параметры этой функции включают имя результирующего PDF-файла.
  • Функция AsposePdfOptimize возвращает объект JSON, и с помощью json.errorCode вы можете проверить, успешно ли оптимизирован PDF-файл или нет. Если код ошибки равен 0, PDF-файл оптимизируется без проблем. В противном случае произошла ошибка, которую можно прочитать из json.errorText.
  • Наконец, вызовите функцию DownloadFile, чтобы создать ссылку на оптимизированный PDF-файл.

В следующем фрагменте кода показано, как оптимизировать PDF-файл с помощью 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]);
};

Использование Web Worker в оптимизации PDF

В предыдущем разделе мы просто загрузили PDF-файл, оптимизировали его и загрузили полученный PDF-файл. Теперь давайте воспользуемся веб-воркером, чтобы сделать процесс оптимизации более плавным и предотвратить блокировку потока пользовательского интерфейса. Следующий скрипт показывает, как написать веб-воркер, использующий функцию оптимизации PDF, которую мы написали в предыдущем разделе.

/*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;
  }

Оптимизация PDF-ресурсов с помощью JavaScript

Другой метод оптимизации PDF-файлов — удаление неиспользуемых ресурсов и объединение общих ресурсов в один объект. Чтобы оптимизировать ресурсы PDF, Aspose.PDF предоставляет функцию AsposePdfOptimizeResource. Следующий фрагмент кода демонстрирует, как оптимизировать ресурсы PDF в 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]);
};

Получите бесплатную PDF-библиотеку JavaScript

Получите бесплатную временную лицензию и используйте нашу библиотеку оптимизации PDF на JavaScript без каких-либо ограничений.

Заключение

Оптимизация PDF-файлов имеет решающее значение для обеспечения оптимальной производительности и удобства работы с веб-приложениями. Aspose.PDF for JavaScript предоставляет мощный набор инструментов для эффективной оптимизации PDF-документов. В этом сообщении блога мы предоставили вам простой в реализации метод оптимизации PDF-файлов с помощью JavaScript. Используя этот метод оптимизации PDF, вы можете значительно улучшить общее управление документами в своих веб-приложениях.

Узнайте больше о нашей библиотеке JavaScript PDF в документации. Если у вас есть какие-либо вопросы, поделитесь ими с нами через наш форум.

Смотрите также