تحويل PPT و PPTX إلى PDF في JavaScript [متضمنة ميزات متقدمة]
نظرة عامة
تحويل عروض PowerPoint وOpenDocument (PPT، PPTX، ODP، إلخ) إلى تنسيق PDF باستخدام JavaScript يوفّر عدة مزايا، بما في ذلك التوافق عبر الأجهزة المختلفة وحفظ تخطيط وتنسيق العرض. يشرح هذا الدليل كيفية تحويل العروض إلى مستندات PDF، واستخدام خيارات مختلفة للتحكم في جودة الصور، وتضمين الشرائح المخفية، وحماية ملفات PDF بكلمة مرور، واكتشاف استبدال الخطوط، اختيار شرائح محددة للتحويل، وتطبيق معايير الامتثال على المستندات الناتجة.
تحويل PowerPoint إلى PDF
باستخدام Aspose.Slides، يمكنك تحويل العروض بالصيغات التالية إلى PDF:
- PPT
- PPTX
- ODP
لتحويل عرض إلى PDF، مرّر اسم الملف كمعامل إلى فئة العرض ثم احفظ العرض كملف PDF باستخدام طريقة حفظ. فئة العرض تُظهر طريقة حفظ التي تُستَخدم عادةً لتحويل العرض إلى PDF.
Note
Aspose.Slides لـ Node.js عبر Java يدرج معلومات واجهة برمجة التطبيقات ورقم الإصدار في المستندات الناتجة. على سبيل المثال، عند تحويل عرض إلى PDF، تقوم Aspose.Slides بملء حقل Application بـ “Aspose.Slides” وحقل PDF Producer بقيمة على شكل “Aspose.Slides v XX.XX”. ملاحظة أنه لا يمكنك توجيه Aspose.Slides لتغيير أو إزالة هذه المعلومات من المستندات الناتجة.Aspose.Slides يتيح لك:
- تحويل العروض بالكامل إلى PDF
- تحويل شرائح محددة من العرض إلى PDF
يصدّر Aspose.Slides العروض إلى PDF، مما يضمن أن ملفات PDF الناتجة تطابق العروض الأصلية بدقة. تُرَسم العناصر والسمات بدقة أثناء التحويل، بما في ذلك:
- الصور
- صناديق النص والأشكال
- تنسيق النص
- تنسيق الفقرات
- الروابط التشعبية
- الترويسات والتذييلات
- النقاط
- الجداول
تحويل PowerPoint إلى PDF
تستخدم عملية التحويل القياسية من PowerPoint إلى PDF الخيارات الافتراضية. في هذه الحالة، تحاول Aspose.Slides تحويل العرض المزوَّد إلى PDF باستخدام إعدادات مثلى بأعلى مستويات الجودة.
المثال التالي يحمل عرضًا ويحفظ جميع الشرائح المرئية إلى PDF باستخدام إعدادات التصدير الافتراضية.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("PowerPoint.ppt");
try {
presentation.save("PPT-to-PDF.pdf", aspose.slides.SaveFormat.Pdf);
} finally {
presentation.dispose();
}
Note
Aspose يقدم محولًا مجانيًا عبر الإنترنت محول PowerPoint إلى PDF يوضح عملية التحويل من العرض إلى PDF. يمكنك تجربة هذا المحول للحصول على تنفيذ حي للإجراء الموضح هنا.تحويل PowerPoint إلى PDF مع الخيارات
توفر Aspose.Slides خيارات مخصصة—خصائص تحت فئة PdfOptions—تتيح لك تخصيص PDF الناتج، قفل PDF بكلمة مرور، أو تحديد كيفية سير عملية التحويل.
تحويل PowerPoint إلى PDF مع خيارات مخصصة
باستخدام خيارات التحويل المخصصة، يمكنك تحديد إعداد الجودة المفضلة للصور النقطية، تحديد كيفية معالجة ملفات الميتا، ضبط مستوى ضغط النص، تكوين DPI للصور، والمزيد.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setJpegQuality(java.newByte(90));
pdfOptions.setSufficientResolution(300);
pdfOptions.setSaveMetafilesAsPng(true);
pdfOptions.setTextCompression(aspose.slides.PdfTextCompression.Flate);
pdfOptions.setCompliance(aspose.slides.PdfCompliance.Pdf15);
let presentation = new aspose.slides.Presentation("PowerPoint.pptx");
try {
presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
اختيار ضغط الصورة تلقائيًا
عند احتواء عرض على العديد من الصور أو لقطات الشاشة، يمكن لتقليل حجم PDF المُصدَّر أن يسهل إرساله بالبريد أو تحميله. استدعِ PdfOptions.setBestImagesCompressionRatio مع true لاختيار خوارزمية الضغط الأنسب لكل صورة تلقائيًا أثناء تصدير PDF.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setBestImagesCompressionRatio(true);
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
presentation.save("presentation.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
تختار هذه الخيار خوارزمية ضغط لكل صورة. خفض القيمة المرسلة إلى setJpegQuality يقلل من جودة صورة JPEG، في حين أن خفض القيمة المرسلة إلى setSufficientResolution يسمح بخفض دقة الصور، مما قد يقلل من التفاصيل. تمكين اختيار الضغط التلقائي لا يقلل من أي من هذين الإعدادين بحد ذاته.
يتطلب اختيار خوارزميات ضغط الصور وقت معالجة إضافي وذاكرة. يعتمد تقليل الحجم على صور العرض وإعدادات التصدير؛ لا يُضمن تقليل ثابت لكل عرض.
الحفاظ على ملفات OLE المضمّنة كمرفقات PDF
إذا كان العرض يحتوي على كتاب عمل Excel مضمّن، قد ترغب في أن يتمكن متلقي PDF من الوصول إلى بيانات الكتاب بالإضافة إلى مشاهدة الشرائح. استدعِ setIncludeOleData مع true للحفاظ على ملفات OLE المضمّنة كمرفقات في PDF الناتج.
القيمة الافتراضية هي false: يُرَسم صورة معاينة أو أيقونة كائن OLE على صفحة PDF، لكن ملفه المضمّن لا يُضمَّن كمرفق. ضبط الخيار على true يضيف بيانات الملف كذلك. تظل المعاينة تمثيلًا بصريًا؛ المرفق يتيح للمتلقين فتح أو حفظ الملف المضمّن بشكل منفصل. لا يتحول كائن OLE إلى ورقة عمل Excel تفاعلية على صفحة PDF.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setIncludeOleData(true);
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
presentation.save("presentation.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
للتحقق من النتيجة:
- افتح PDF المُصدَّر في عارض يدعم المرفقات، مثل Adobe Acrobat Reader.
- افتح لوحة المرفقات في العارض وحدد موقع كتاب العمل المضمّن.
- احفظ المرفق وافتحه في Excel لتفحص بياناته، أو افتحه مباشرة إذا سمح العارض بذلك. المعاينة على صفحة PDF منفصلة عن المرفق.
Note
تفرض معايير PDF/A قيودًا على المرفقات: PDF/A-1 يمنع الملفات المضمَّنة، PDF/A-2 يسمح فقط بمرفقات PDF/A، وPDF/A-3 يسمح بأنواع ملفات أخرى، بما في ذلك كتب عمل Excel. هذه متطلبات المعايير، غير أنها ليست قيودًا خاصة بـ Aspose.Slides. يستخدم هذا المثال الإعداد الافتراضي للامتثال للـ PDF ولا يُظهر تصدير PDF/A.تحويل PowerPoint إلى PDF مع الشرائح المخفية
إذا كان العرض يحتوي على شرائح مخفية، يمكنك استخدام طريقة setShowHiddenSlides من فئة PdfOptions لتضمين الشرائح المخفية كصفحات في PDF الناتج.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setShowHiddenSlides(true);
let presentation = new aspose.slides.Presentation("PowerPoint.pptx");
try {
presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
تحويل PowerPoint إلى PDF محمي بكلمة مرور
المثال التالي يصدر عرضًا إلى PDF يتطلب كلمة المرور password للفتح. تصاريح الوصول تسمح بالطباعة، بما فيها الطباعة بجودة عالية.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setPassword("password");
pdfOptions.setAccessPermissions(aspose.slides.PdfAccessPermissions.PrintDocument | aspose.slides.PdfAccessPermissions.HighQualityPrint);
let presentation = new aspose.slides.Presentation("PowerPoint.pptx");
try {
presentation.save("PPTX-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
اكتشاف استبدال الخطوط
توفر Aspose.Slides طريقة setWarningCallback تحت فئة PdfOptions تمكّنك من اكتشاف استبدال الخطوط أثناء عملية التحويل من العرض إلى PDF.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const FontSubstitutionHandler = java.newProxy("com.aspose.slides.IWarningCallback", {
warning: function (warning) {
if (warning.getWarningType() === aspose.slides.WarningType.DataLoss && warning.getDescription().startsWith("Font will be substituted")) {
console.warn("Font substitution warning: " + warning.getDescription());
}
return aspose.slides.ReturnAction.Continue;
}
});
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setWarningCallback(FontSubstitutionHandler);
let presentation = new aspose.slides.Presentation("sample.pptx");
try {
presentation.save("output.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
Note
لمزيد من المعلومات حول استبدال الخطوط، راجع مقالة استبدال الخط.معالجة الخطوط بدون نوع مائل مخصص
يمكن للعرض تطبيق تنسيق غامق للنص حتى عندما لا يمتلك الخط نوعًا مائلًا مخصصًا. لا يزال النص يظهر غامقًا عبر التسمك الاصطناعي، الذي يزيد من سماكة الأحرف العادية. عندما يبدو هذا النص ثقيلاً جدًا أو يختلف عن الشكل المقصود في PDF، جرّب استدعاء PdfOptions.setRasterizeUnsupportedFontStyles مع true. هذا الخيار يرسم النص المتأثر كصورة نقطية أثناء تصدير PDF ويمكن أن يُحسّن مظهره لبعض الخطوط. قيمته الافتراضية false.
العرض التجريبي يحتوي على صندوقي نص: أحدهما بنص عادي والآخر بنص غامق لنفس الخط الذي لا يمتلك نوعًا مائلًا مخصصًا. المثال التالي يحمل العرض، يُفعِّل تحويل الأنماط الخطية غير المدعومة إلى نقطية، ثم يصدره إلى PDF:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setRasterizeUnsupportedFontStyles(true);
let presentation = new aspose.slides.Presentation("unsupported-bold.pptx");
try {
presentation.save("rasterized.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
المعاينات التالية تُظهر النتيجة مع الخيار معطَّل ومع الخيار مفعَّل. في هذا المثال، يصبح النص الغامق ذو خطوط أثقل عندما يكون الخيار معطَّل. مع تفعيل الخيار، تصبح خطوطه أخف؛ يبقى النص العادي دون تغيير. قارن النتائج قبل اختيار الإعداد المناسب لعرضك.
الخيار معطَّل (false، الافتراضي) |
الخيار مفعَّل (true) |
|---|---|
![]() |
![]() |
في هذا المثال، يُحوِّل تفعيل الخيار النص الغامق فقط إلى صورة نقطية: لا يمكن تحديده أو نسخه أو البحث فيه كنص دون OCR، وتظهر حوافه أطرًا أكثر نعومة عند تكبير 800 %. يظل النص العادي قابلًا للبحث. عندما يكون الخيار معطَّلًا، يظل كلا السلسلتين نصًا.
هذا الخيار يُحوِّل النص المُنسَّق كغامق إلى نقطية عندما لا يمتلك الخط نوعًا مائلًا مخصصًا. استبدال الخط يختار بدلاً من ذلك خطًا آخر عندما يكون الخط الأصلي غير متوفر.
تحويل الشرائح المحددة من PowerPoint إلى PDF
المثال التالي يصدر الشرائح 1 و3 من عرض إلى PDF. أرقام الشرائح في هذا المصفوفة تُحسب من الواحد، ويجب أن يحتوي العرض المُدخَل على ثلاثة شرائح على الأقل على الأقل.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation("PowerPoint.pptx");
try {
let slides = java.newArray("int", [1, 3]);
presentation.save("PPTX-to-PDF.pdf", slides, aspose.slides.SaveFormat.Pdf);
} finally {
presentation.dispose();
}
تحويل PowerPoint إلى PDF بحجم شريحة مخصص
المثال التالي ينسخ الشريحة الأولى من عرض إلى عرض جديد بحجم شريحة 612 × 792 نقطة (8.5 × 11 بوصة). يُقَّمِم محتوى الشريحة ليتناسب ويصدر الشريحة الوحيدة إلى PDF.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const slideWidth = 612;
const slideHeight = 792;
let presentation = new aspose.slides.Presentation("SelectedSlides.pptx");
let resizedPresentation = new aspose.slides.Presentation();
try {
resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, aspose.slides.SlideSizeScaleType.EnsureFit);
let slide = presentation.getSlides().get_Item(0);
resizedPresentation.getSlides().insertClone(0, slide);
// إزالة الشريحة الفارغة التي تم إنشاء العرض الجديد معها.
resizedPresentation.getSlides().removeAt(1);
resizedPresentation.save("PDF_with_custom_slide_size.pdf", aspose.slides.SaveFormat.Pdf);
} finally {
resizedPresentation.dispose();
presentation.dispose();
}
تحويل PowerPoint إلى PDF في عرض ملاحظات الشريحة
المثال التالي يصدر عرضًا إلى PDF، موضعًا ملاحظات المتحدث لكل شريحة أسفل الشريحة. استخدم عرضًا يحتوي على ملاحظات المتحدث لرؤية النتيجة.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions();
notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull);
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setSlidesLayoutOptions(notesOptions);
let presentation = new aspose.slides.Presentation("SelectedSlides.pptx");
try {
presentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
معايير إمكانية الوصول والامتثال لـ PDF
يسمح Aspose.Slides لك باستخدام إجراء تحويل يتوافق مع إرشادات محتوى الويب لإمكانية الوصول (WCAG). يمكنك تصدير مستند PowerPoint إلى PDF باستخدام أي من معايير الامتثال هذه: PDF/A1a، PDF/A1b، وPDF/UA.
يعرض هذا الشيفرة عملية تحويل من PowerPoint إلى PDF تُنتج ملفات PDF متعددة بناءً على معايير امتثال مختلفة:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("pres.pptx");
try {
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1a);
presentation.save("pres-a1a-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1b);
presentation.save("pres-a1b-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfUa);
presentation.save("pres-ua-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
Note
يدعم Aspose.Slides عمليات تحويل PDF، مما يتيح لك تحويل ملفات PDF إلى صيغ ملفات شائعة. يمكنك إجراء تحويلات PDF إلى HTML، PDF إلى JPG، وPDF إلى PNG. تدعم عمليات تحويل PDF إلى صيغ متخصصة أخرى—PDF إلى SVG، PDF إلى TIFF—أيضًا.ملاحظة: عند التصدير إلى PDF/UA، يتعامل Aspose.Slides مع الرسومات المعقدة مثل SmartArt، المخططات، والمعادلات ككائن واحد. لا تُحفظ عناصر المسار الفردية كمحتوى منفصل وقد تُصنَّف كقطع فنية؛ يُقدَّم النص البديل فقط للكائن الكامل.
الأسئلة الشائعة
هل يمكنني تحويل ملفات PowerPoint متعددة إلى PDF دفعيًا؟
نعم، يدعم Aspose.Slides التحويل الدفعي لملفات PPT أو PPTX المتعددة إلى PDF. يمكنك التكرار عبر ملفاتك وتطبيق عملية التحويل برمجياً.
هل من الممكن حماية PDF المحول بكلمة مرور؟
نعم. استخدم فئة PdfOptions لتعيين كلمة مرور وتعريف أذونات الوصول أثناء عملية التحويل.
كيف يمكنني تضمين الشرائح المخفية في PDF؟
استدعِ setShowHiddenSlides مع true في فئة PdfOptions لتضمين الشرائح المخفية في PDF الناتج.
هل يمكن لـ Aspose.Slides الحفاظ على جودة صورة عالية في PDF؟
نعم، يمكنك التحكم بجودة الصورة باستخدام طرق مثل setJpegQuality وsetSufficientResolution في فئة PdfOptions لضمان صور عالية الجودة في PDF الخاص بك.
هل يدعم Aspose.Slides معايير الامتثال PDF/A؟
نعم، يتيح لك Aspose.Slides تصدير ملفات PDF تتوافق مع معايير مختلفة، بما في ذلك PDF/A1a، PDF/A1b، وPDF/UA، مما يضمن أن مستنداتك تفي بمتطلبات الوصول والأرشفة.

