تحسين PDF في جافا سكريبت

تعد ملفات PDF تنسيقًا واسع الانتشار لمشاركة المستندات، ولكنها قد تكون كبيرة الحجم في بعض الأحيان، مما يؤدي إلى إبطاء أوقات التحميل وزيادة متطلبات التخزين. يعد تحسين ملفات PDF أمرًا ضروريًا لضمان تجربة مستخدم سلسة، خاصة في تطبيقات الويب. لذلك، في منشور المدونة هذا، سنستكشف كيفية تحسين ملفات PDF باستخدام JavaScript.

مكتبة جافا سكريبت لتحسين PDF

لتحسين PDF في تطبيق JavaScript، سوف نستخدم Aspose.PDF for JavaScript. إنها مكتبة قوية تسمح للمطورين بمعالجة ملفات PDF ومعالجتها وتحسينها باستخدام JavaScript. فلنبدأ بتثبيت المكتبة أولاً.

قم بتنزيل المكتبة واتبع تعليمات التثبيت المتوفرة هنا: كيفية تثبيت Aspose.PDF لـ 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 الخاصة بنا دون أي قيود.

خاتمة

يعد تحسين ملفات PDF أمرًا بالغ الأهمية لضمان الأداء الأمثل وتجربة المستخدم في تطبيقات الويب. يوفر Aspose.PDF for JavaScript مجموعة قوية من الأدوات لتحسين مستندات PDF بكفاءة. في منشور المدونة هذا، قدمنا لك طريقة سهلة التنفيذ لتحسين ملفات PDF باستخدام JavaScript. باستخدام طريقة تحسين PDF هذه، يمكنك تحسين إدارة المستندات بشكل عام في تطبيقات الويب الخاصة بك.

اكتشف المزيد حول مكتبة JavaScript PDF الخاصة بنا في الوثائق. في حالة وجود أي استفسارات، يرجى مشاركتها معنا عبر المنتدى.

أنظر أيضا