تحويل عروض PowerPoint التقديمية إلى HTML في Java

نظرة عامة

توضح هذه المقالة كيفية تحويل عرض تقديمي PowerPoint إلى تنسيق HTML باستخدام Java. تغطي المواضيع التالية.

  • تحويل PowerPoint إلى HTML في Java
  • تحويل PPT إلى HTML في Java
  • تحويل PPTX إلى HTML في Java
  • تحويل ODP إلى HTML في Java
  • تحويل شريحة PowerPoint إلى HTML في Java

Java PowerPoint إلى HTML

للحصول على مثال شفرة Java لتحويل PowerPoint إلى HTML، يرجى الاطلاع على القسم أدناه أي تحويل PowerPoint إلى HTML. يمكن للشفرة تحميل عدد من الصيغ مثل PPT و PPTX و ODP في كائن Presentation وحفظه بتنسيق HTML.

حول تحويل PowerPoint إلى HTML

باستخدام Aspose.Slides for Java، يمكن للتطبيقات والمطورين تحويل عرض تقديمي PowerPoint إلى HTML: PPTX إلى HTML أو PPT إلى HTML.

Aspose.Slides يوفر العديد من الخيارات (في الغالب من فئة HtmlOptions) التي تحدد عملية تحويل PowerPoint إلى HTML:

  • تحويل عرض تقديمي PowerPoint كامل إلى HTML.
  • تحويل شريحة محددة في عرض تقديمي PowerPoint إلى HTML.
  • تحويل وسائط العرض (الصور، الفيديوهات، إلخ) إلى HTML.
  • تحويل عرض تقديمي PowerPoint إلى HTML مستجيب.
  • تحويل عرض تقديمي PowerPoint إلى HTML مع تضمين أو استبعاد ملاحظات المتحدث.
  • تحويل عرض تقديمي PowerPoint إلى HTML مع تضمين أو استبعاد التعليقات.
  • تحويل عرض تقديمي PowerPoint إلى HTML مع الخطوط الأصلية أو المضمنة.
  • تحويل عرض تقديمي PowerPoint إلى HTML مع استخدام نمط CSS الجديد.

تحويل PowerPoint إلى HTML

باستخدام Aspose.Slides، يمكنك تحويل عرض تقديمي PowerPoint كامل إلى HTML بهذه الطريقة:

  1. إنشاء نسخة من فئة Presentation.
  2. استخدام طريقة Save لحفظ الكائن كملف HTML.

يعرض هذا الشيفرة كيفية تحويل PowerPoint إلى HTML في Java:

// إنشاء كائن Presentation يمثل ملف عرض تقديمي
Presentation pres = new Presentation("Convert_HTML.pptx");
try {
    HtmlOptions htmlOpt = new HtmlOptions();
	
    htmlOpt.getNotesCommentsLayouting().setNotesPosition(NotesPositions.BottomFull);
	
    htmlOpt.setHtmlFormatter(HtmlFormatter.createDocumentFormatter("", false));

    // حفظ العرض التقديمي كملف HTML
    pres.save("ConvertWholePresentationToHTML_out.html", SaveFormat.Html, htmlOpt);
} finally {
    if (pres != null) pres.dispose();
}

تحويل PowerPoint إلى HTML مستجيب

توفر Aspose.Slides الفئة ResponsiveHtmlController التي تتيح لك إنشاء ملفات HTML مستجيبة. يعرض هذا الشيفرة كيفية تحويل عرض تقديمي PowerPoint إلى HTML مستجيب في Java:

// إنشاء كائن Presentation يمثل ملف عرض تقديمي
Presentation pres = new Presentation("Convert_HTML.pptx");
try {
    ResponsiveHtmlController controller = new ResponsiveHtmlController();
    HtmlOptions htmlOptions = new HtmlOptions();
    htmlOptions.setHtmlFormatter(HtmlFormatter.createCustomFormatter(controller));

    // حفظ العرض التقديمي كملف HTML
    pres.save("ConvertPresentationToResponsiveHTML_out.html", SaveFormat.Html, htmlOptions);
} finally {
    if (pres != null) pres.dispose();
}

تحويل PowerPoint إلى HTML مع الملاحظات

يعرض هذا الشيفرة كيفية تحويل PowerPoint إلى HTML مع الملاحظات في Java:

Presentation pres = new Presentation("Presentation.pptx");
try {
    HtmlOptions opt = new HtmlOptions();
	
    INotesCommentsLayoutingOptions options = opt.getNotesCommentsLayouting();
    options.setNotesPosition(NotesPositions.BottomFull);

    // حفظ صفحات الملاحظات
    pres.save("Output.html", SaveFormat.Html, opt);
} finally {
    if (pres != null) pres.dispose();
}

تحويل PowerPoint إلى HTML مع الخطوط الأصلية

توفر Aspose.Slides الفئة EmbedAllFontsHtmlController التي تتيح لك تضمين جميع الخطوط في عرض تقديمي أثناء تحويله إلى HTML.

لمنع تضمين بعض الخطوط، يمكنك تمرير مصفوفة من أسماء الخطوط إلى مُنشئ بارامترى من الفئة EmbedAllFontsHtmlController. الخطوط الشائعة مثل Calibri أو Arial، عند استخدامها في عرض تقديمي، لا يلزم تضمينها لأن معظم الأنظمة تحتوي عليها بالفعل. عند تضمين تلك الخطوط، يصبح مستند HTML الناتج كبيرًا أكثر من اللازم.

تدعم الفئة EmbedAllFontsHtmlController الوراثة وتوفر الطريقة WriteFont التي يُقصد تعديلها.

Presentation pres = new Presentation("input.pptx");
try {
    // استبعاد خطوط العرض التقديمي الافتراضية
    String[] fontNameExcludeList = { "Calibri", "Arial" };

    EmbedAllFontsHtmlController embedFontsController = new EmbedAllFontsHtmlController(fontNameExcludeList);

    HtmlOptions htmlOptionsEmbed = new HtmlOptions();
    htmlOptionsEmbed.setHtmlFormatter(HtmlFormatter.createCustomFormatter(embedFontsController));

    pres.save("input-PFDinDisplayPro-Regular-installed.html", SaveFormat.Html, htmlOptionsEmbed);
} finally {
    if (pres != null) pres.dispose();
}

تحويل PowerPoint إلى HTML مع صور عالية الجودة

بشكل افتراضي، عند تحويل PowerPoint إلى HTML، تُنتج Aspose.Slides ملفات HTML صغيرة مع صور بدقة 72 DPI ومساحات مقصوصة محذوفة. للحصول على ملفات HTML بصور ذات جودة أعلى، يجب ضبط الخاصية PicturesCompression (من فئة HtmlOptions) إلى 96 (أي PicturesCompression.Dpi96) أو قيم أعلى values.

يعرض هذا الشيفرة Java كيفية تحويل عرض تقديمي PowerPoint إلى HTML مع الحصول على صور عالية الجودة بدقة 150 DPI (أي PicturesCompression.Dpi150):

Presentation pres = new Presentation("InputDoc.pptx");
try {
    HtmlOptions htmlOpts = new HtmlOptions();
    htmlOpts.setPicturesCompression(PicturesCompression.Dpi150);
    
    pres.save("OutputDoc-dpi150.html", SaveFormat.Html, htmlOpts);
} finally {
    if (pres != null) pres.dispose();
}

يعرض هذا الشيفرة في Java كيفية إخراج HTML بصور ذات جودة كاملة:

Presentation pres = new Presentation("InputDoc.pptx");
try {
    HtmlOptions htmlOpts = new HtmlOptions();
    htmlOpts.setDeletePicturesCroppedAreas(false);

    pres.save("Outputdoc-noCrop.html", SaveFormat.Html, htmlOpts);
} finally {
    if (pres != null) pres.dispose();
}

تحويل الشريحة إلى HTML

لتحويل شريحة محددة في PowerPoint إلى HTML، يجب إنشاء نسخة من نفس فئة Presentation (المستخدمة لتحويل العروض الكاملة إلى HTML) ثم استخدام طريقة Save لحفظ الملف كـ HTML. يمكن استخدام فئة HtmlOptions لتحديد خيارات تحويل إضافية:

يعرض هذا الشيفرة Java كيفية تحويل شريحة في عرض تقديمي PowerPoint إلى HTML:

Presentation pres = new Presentation("Individual-Slide.pptx");
try {
    HtmlOptions htmlOptions = new HtmlOptions();
    htmlOptions.getNotesCommentsLayouting().setNotesPosition(NotesPositions.BottomFull);
	
    htmlOptions.setHtmlFormatter(HtmlFormatter.createCustomFormatter(new CustomFormattingController()));

    // حفظ الملف
    for (int i = 0; i < pres.getSlides().size(); i++)
        pres.save("Individual Slide" + (i + 1) + "_out.html", new int[]{i + 1},SaveFormat.Html, htmlOptions);
} finally {
    if (pres != null) pres.dispose();
}
public class CustomFormattingController implements IHtmlFormattingController
{
    @Override
    public void writeDocumentStart(IHtmlGenerator generator, IPresentation presentation) { }

    @Override
    public void writeDocumentEnd(IHtmlGenerator generator, IPresentation presentation) { }

    @Override
    public void writeSlideStart(IHtmlGenerator generator, ISlide slide) 
	{
        generator.addHtml(String.format(SlideHeader, generator.getSlideIndex() + 1));
    }

    @Override
    public void writeSlideEnd(IHtmlGenerator generator, ISlide slide) 
	{
        generator.addHtml(SlideFooter);
    }

    @Override
    public void writeShapeStart(IHtmlGenerator generator, IShape shape) { }

    @Override
    public void writeShapeEnd(IHtmlGenerator generator, IShape shape) { }

    private final String SlideHeader = "<div class=\"slide\" name=\"slide\" id=\"slide%d\">";
    private final String SlideFooter = "</div>";
}

حفظ CSS والصور عند التصدير إلى HTML

باستخدام ملفات نمط CSS الجديدة، يمكنك تغيير نمط ملف HTML الناتج عن عملية تحويل PowerPoint إلى HTML بسهولة.

يعرض الشيفرة Java في هذا المثال كيفية استخدام الطرق القابلة للتجاوز لإنشاء مستند HTML مخصص مع رابط إلى ملف CSS:

Presentation pres = new Presentation("pres.pptx");
try {
    CustomHeaderAndFontsController htmlController = new CustomHeaderAndFontsController("styles.css");
    HtmlOptions options = new HtmlOptions();
    options.setHtmlFormatter(HtmlFormatter.createCustomFormatter(htmlController));

    pres.save("pres.html", SaveFormat.Html, options);
} finally {
    if (pres != null) pres.dispose();
}
public class CustomHeaderAndFontsController extends EmbedAllFontsHtmlController
{
    private final int m_basePath = 0;

    // قالب رأس مخصص
    final static String Header = "<!DOCTYPE html>\n" +
            "<html>\n" +
            "<head>\n" +
            "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" +
            "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\">\n" +
            "<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\">\n" +
            "</head>";

    private final String m_cssFileName;

    public CustomHeaderAndFontsController(String cssFileName) 
    {
        m_cssFileName = cssFileName;
    }

    public void writeDocumentStart(IHtmlGenerator generator, IPresentation presentation) 
    {
        generator.addHtml(String.format(Header, m_cssFileName));
        writeAllFonts(generator, presentation);
    }

    public void writeAllFonts(IHtmlGenerator generator, IPresentation presentation) 
    {
        generator.addHtml("<!-- Embedded fonts -->");
        super.writeAllFonts(generator, presentation);
    }
}

ربط جميع الخطوط عند تحويل عرض تقديمي إلى HTML

إذا كنت لا ترغب في تضمين الخطوط (لتجنب زيادة حجم HTML الناتج)، يمكنك ربط جميع الخطوط عن طريق تنفيذ نسخة خاصة بك من LinkAllFontsHtmlController.

يعرض هذا الشيفرة Java كيفية تحويل PowerPoint إلى HTML مع ربط جميع الخطوط واستثناء “Calibri” و “Arial” (لأنهما موجودان بالفعل في النظام):

Presentation pres = new Presentation("pres.pptx");
try
{
    //استبعاد خطوط العرض التقديمي الافتراضية
    String[] fontNameExcludeList = { "Calibri", "Arial" };

    LinkAllFontsHtmlController linkcont = new LinkAllFontsHtmlController(fontNameExcludeList,"C:/Windows/Fonts/");

    HtmlOptions htmlOptionsEmbed = new HtmlOptions();
    htmlOptionsEmbed.setHtmlFormatter(HtmlFormatter.createCustomFormatter((IHtmlFormattingController) linkcont));

    pres.save("pres.html", SaveFormat.Html, htmlOptionsEmbed);
}
finally {
    if (pres != null) pres.dispose();
}

يعرض هذا الشيفرة Java كيفية تنفيذ LinkAllFontsHtmlController:

public class LinkAllFontsHtmlController extends EmbedAllFontsHtmlController
{
    private final String m_basePath;

    public LinkAllFontsHtmlController(String[] fontNameExcludeList, String basePath)
    {
        super(fontNameExcludeList);
        m_basePath = basePath;
    }

    public void writeFont
    (
            IHtmlGenerator generator,
            IFontData originalFont,
            IFontData substitutedFont,
            String fontStyle,
            String fontWeight,
            byte[] fontData)
    {
        try {
            String fontName = substitutedFont == null ? originalFont.getFontName() : substitutedFont.getFontName();
            String path = fontName + ".woff"; // قد يلزم بعض تنقية المسار
            Files.write(new File(m_basePath + path).toPath(), fontData, StandardOpenOption.CREATE);

            generator.addHtml("<style>");
            generator.addHtml("@font-face { ");
            generator.addHtml("font-family: '" + fontName + "'; ");
            generator.addHtml("src: url('" + path + "')");

            generator.addHtml(" }");
            generator.addHtml("</style>");
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

تحويل PowerPoint إلى HTML مستجيب

يعرض هذا الشيفرة Java كيفية تحويل عرض تقديمي PowerPoint إلى HTML مستجيب:

Presentation pres = new Presentation("SomePresentation.pptx");
try {
    HtmlOptions saveOptions = new HtmlOptions();
    saveOptions.setSvgResponsiveLayout(true);
    pres.save("SomePresentation-out.html", SaveFormat.Html, saveOptions);
} finally {
    if (pres != null) pres.dispose();
}

تصدير ملفات الوسائط إلى HTML

باستخدام Aspose.Slides for Java، يمكنك تصدير ملفات الوسائط بهذه الطريقة:

  1. إنشاء نسخة من فئة Presentation.
  2. الحصول على مرجع إلى الشريحة.
  3. إضافة فيديو إلى الشريحة.
  4. كِتابة العرض التقديمي كملف HTML.

يعرض هذا الشيفرة Java كيفية إضافة فيديو إلى العرض التقديمي ثم حفظه كملف HTML:

// تحميل عرض تقديمي
Presentation pres = new Presentation();
try {
    String path = "./out/";
    final String fileName = "ExportMediaFiles_out.html";
    final String baseUri = "http://www.example.com/";

    byte[] videoData = Files.readAllBytes(Paths.get("my_video.avi"));
    IVideo video = pres.getVideos().addVideo(videoData);
    pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video);

    VideoPlayerHtmlController controller = new VideoPlayerHtmlController(path, fileName, baseUri);

    // تعيين خيارات HTML
    HtmlOptions htmlOptions = new HtmlOptions(controller);
    SVGOptions svgOptions = new SVGOptions(controller);

    htmlOptions.setHtmlFormatter(HtmlFormatter.createCustomFormatter(controller));
    htmlOptions.setSlideImageFormat(SlideImageFormat.svg(svgOptions));

    // حفظ الملف
    pres.save(fileName, SaveFormat.Html, htmlOptions);
} catch(Exception e) {
} finally {
    if (pres != null) pres.dispose();
}

FAQ

ما هو أداء Aspose.Slides عند تحويل عروض تقديمية متعددة إلى HTML؟

يعتمد الأداء على حجم وتعقيد العروض التقديمية. Aspose.Slides عالية الكفاءة وقابلة للتوسع للعمليات الدفعية. للحصول على أفضل أداء عند تحويل العديد من العروض، يُنصح باستخدام المعالجة المتعددة الخيوط أو المعالجة المتوازية كلما كان ذلك ممكنًا.

هل يدعم Aspose.Slides تصدير الروابط التشعبية إلى HTML؟

نعم، يدعم Aspose.Slides تصدير الروابط التشعبية المدمجة إلى HTML بالكامل. عند تحويل العروض إلى تنسيق HTML، تُحفظ الروابط التشعبية تلقائيًا وتظل قابلة للنقر.

هل هناك أي حد لعدد الشرائح عند تحويل العروض إلى HTML؟

لا يوجد حد لعدد الشرائح عند استخدام Aspose.Slides. يمكنك تحويل عروض بأي حجم. ومع ذلك، بالنسبة للعروض التي تحتوي على عدد كبير جدًا من الشرائح، قد يعتمد الأداء على موارد الخادم أو النظام المتاحة.