Convert PDF to Microsoft PowerPoint

Aspose.PDF for Java позволяет отслеживать прогресс конвертации PDF в PPTX. У нас есть API под названием Aspose.Slides, который предлагает возможность создавать и изменять презентации PPT/PPTX. Этот API также предоставляет функцию конвертации файлов PPT/PPTX в формат PDF. В Aspose.PDF for Java мы внедрили функцию преобразования документов PDF в формат PPTX. Во время этой конвертации отдельные страницы PDF файла преобразуются в отдельные слайды в файле PPTX.

Во время конвертации PDF в PPTX текст отображается как текст, который можно выбрать/обновить, вместо того чтобы быть отображенным как изображение. Пожалуйста, обратите внимание, что для преобразования файлов PDF в формат PPTX, Aspose.PDF предоставляет класс с именем PptxSaveOptions. Объект класса PptxSaveOptions передается в качестве второго аргумента методу Document.save(..).

Проверьте следующий фрагмент кода, чтобы решить ваши задачи по конверсии PDF в формат PowerPoint:

public final class ConvertPDFtoPPTX {

    private ConvertPDFtoPPTX() {

    }

    private static final Path DATA_DIR = Paths.get("/home/aspose/pdf-examples/Samples");

    public static void run() throws IOException {
        convertPDFtoPPTX_Simple();
        convertPDFtoPPTX_SlideAsImages();
        convertPDFtoPPTX_ProgresDetails();
    }

    public static void convertPDFtoPPTX_Simple() {
        String documentFileName = Paths.get(DATA_DIR.toString(), "PDFToPPTX.pdf").toString();
        String pptxDocumentFileName = Paths.get(DATA_DIR.toString(), "PDFToPPTX_out.pptx").toString();

        // Загрузить PDF документ
        Document document = new Document(documentFileName);

        // Создать экземпляр PptxSaveOptions
        PptxSaveOptions pptx_save = new PptxSaveOptions();

        // Сохранить вывод в формате PPTX
        document.save(pptxDocumentFileName, pptx_save);
        document.close();
    }
}

Преобразование PDF в PPTX с слайдами в виде изображений

В случае, если вам нужно преобразовать PDF с возможностью поиска в PPTX в виде изображений вместо выделяемого текста, Aspose.PDF предоставляет такую возможность через класс Aspose.Pdf.PptxSaveOptions. Чтобы достичь этого, установите свойство SlidesAsImages класса PptxSaveOptions в ’true’, как показано в следующем примере кода.

Следующий фрагмент кода показывает процесс преобразования PDF файлов в формат PPTX слайды в виде изображений.

public static void convertPDFtoPPTX_SlideAsImages() {
    String documentFileName = Paths.get(DATA_DIR.toString(), "PDFToPPTX.pdf").toString();
    String pptxDocumentFileName = Paths.get(DATA_DIR.toString(), "PDFToPPTX_out.pptx").toString();

    // Загрузить PDF документ
    Document document = new Document(documentFileName);
    // Создать экземпляр PptxSaveOptions
    PptxSaveOptions pptxSaveOptions = new PptxSaveOptions();
    // Сохранить вывод в формате PPTX
    pptxSaveOptions.setSlidesAsImages(true);

    document.save(pptxDocumentFileName, pptxSaveOptions);
    document.close();
}

Показать прогресс в консоли с помощью Aspose.PDF для Java выглядит следующим образом:

package com.aspose.pdf.examples.conversion;

import com.aspose.pdf.Document;
import com.aspose.pdf.PptxSaveOptions;

import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 * Конвертация PDF в PPTX.
 */
public final class ConvertPDFtoPPTX {

    private ConvertPDFtoPPTX() {

    }

    private static final Path DATA_DIR = Paths.get("/home/aspose/pdf-examples/Samples");

    public static void run() throws IOException {
        convertPDFtoPPTX_ProgressDetails();
    }

    public static void convertPDFtoPPTX_ProgressDetails() {
        String documentFileName = Paths.get(DATA_DIR.toString(), "PDFToPPTX.pdf").toString();
        String pptxDocumentFileName = Paths.get(DATA_DIR.toString(), "PDFToPPTX_out.pptx").toString();

        // Загрузить PDF документ
        Document document = new Document(documentFileName);

        // Создать экземпляр PptxSaveOptions
        PptxSaveOptions pptx_save = new PptxSaveOptions();

        // Указать пользовательский обработчик прогресса
        pptx_save.setCustomProgressHandler(new ShowProgressOnConsole());

        // Сохранить вывод в формате PPTX
        document.save(pptxDocumentFileName, pptx_save);
        document.close();
    }
}

Детали прогресса конверсии PPTX

Aspose.PDF для Java позволяет отслеживать прогресс конверсии PDF в PPTX. Класс Aspose.Pdf.PptxSaveOptions предоставляет свойство CustomProgressHandler, которое может быть указано на пользовательский метод для отслеживания прогресса конверсии, как показано в следующем примере кода.

package com.aspose.pdf.examples;

import java.time.LocalDateTime;

import com.aspose.pdf.ProgressEventType;
import com.aspose.pdf.UnifiedSaveOptions.ConversionProgressEventHandler;
import com.aspose.pdf.UnifiedSaveOptions.ProgressEventHandlerInfo;

class ShowProgressOnConsole extends ConversionProgressEventHandler{

    @Override
    public void invoke(ProgressEventHandlerInfo eventInfo) {        
        switch (eventInfo.EventType) {
            case ProgressEventType.TotalProgress:
                System.out.println(
                        String.format("%s  - Прогресс конверсии : %d %%.", LocalDateTime.now().toString(), eventInfo.Value));
                break;
            case ProgressEventType.ResultPageCreated:
                System.out.println(String.format("%s  - Страница результата %s из %d создана.", LocalDateTime.now().toString(),
                        eventInfo.Value, eventInfo.MaxValue));
                break;
            case ProgressEventType.ResultPageSaved:
                System.out.println(String.format("%s  - Страница результата %d из %d экспортирована.", LocalDateTime.now(), eventInfo.Value, eventInfo.MaxValue));
                break;
            case ProgressEventType.SourcePageAnalysed:
                System.out.println(String.format("%s  - Исходная страница %d из %d проанализирована.", LocalDateTime.now(),  eventInfo.Value, eventInfo.MaxValue));
                break;
            default:
                break;
        }
    }