Сохранить презентацию

Обзор

Класс Presentation содержит содержимое презентации. Создавая презентацию с нуля или модифицируя существующую, вы захотите сохранить презентацию. С Aspose.Slides для Android через Java ее можно сохранить как файл или поток. Эта статья объясняет, как сохранить презентацию различными способами:

Сохранение презентации в файл

Сохраните презентацию в файл, вызвав метод Save класса Presentation. Просто передайте имя файла и SaveFormat в метод Save.

Примеры, приведенные ниже, показывают, как сохранить презентацию с помощью Aspose.Slides для Android через Java.

// Создание объекта Presentation, представляющего файл PPT
Presentation pres = new Presentation();
try {
    // ...выполнение некоторых действий...
    
    // Сохраните вашу презентацию в файл
    pres.save("demoPass.pptx", com.aspose.slides.SaveFormat.Pptx);
} finally {
    if(pres != null) pres.dispose();
}

Сохранение презентации в поток

Можно сохранить презентацию в поток, передав выходной поток в метод Save класса Presentation. Существуют различные типы потоков, в которые можно сохранить презентацию. В следующем примере мы создаем новый файл презентации, добавляем текст в фигуру и сохраняем презентацию в поток.

// Создание объекта Presentation, представляющего файл PPT
Presentation pres = new Presentation();
try {
    IAutoShape shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 200, 200, 200, 200);

    // Добавление текста в фигуру
    shape.getTextFrame().setText("Этот демонстрационный пример показывает, как создать файл PowerPoint и сохранить его в поток.");

    OutputStream os = new FileOutputStream("Save_As_Stream_out.pptx");

    pres.save(os, com.aspose.slides.SaveFormat.Pptx);

    os.close();
} catch (IOException e) {
} finally {
    if (pres != null) pres.dispose();
}

Сохранение презентации с заданным типом представления

Aspose.Slides для Android через Java предоставляет возможность установить тип представления для сгенерированной презентации, когда она открывается в PowerPoint, через класс ViewProperties. Свойство setLastView используется для установки типа представления с помощью перечисления ViewType.

// Открытие файла презентации
Presentation pres = new Presentation();
try {
    // Установка типа представления
    pres.getViewProperties().setLastView((byte) ViewType.SlideMasterView);
    
    // Сохранение презентации
    pres.save("newDemo.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Сохранение презентаций в строгом формате Office Open XML

Aspose.Slides позволяет сохранять презентацию в строгом формате Office Open XML. Для этого предоставляется класс PptxOptions, в котором вы можете установить свойство Conformance при сохранении файла презентации. Если вы установите его значение как Conformance.Iso29500_2008_Strict, тогда выходной файл презентации будет сохранен в строгом формате Open XML.

Следующий образец кода создает презентацию и сохраняет ее в строгом формате Office Open XML. При вызове метода Save для презентации объект PptxOptions передается с установленным свойством Conformance как Conformance.Iso29500_2008_Strict.

// Создание объекта Presentation, представляющего файл PPT
Presentation pres = new Presentation();
try {
    // Получить первый слайд
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Добавить фигуру типа линия
    slide.getShapes().addAutoShape(ShapeType.Line, 50, 150, 300, 0);
    
    // Установить параметры сохранения в строгом формате Office Open XML
    PptxOptions options = new PptxOptions();
    options.setConformance(Conformance.Iso29500_2008_Strict);
    
    // Сохраните вашу презентацию в файл
    pres.save("demoPass.pptx", SaveFormat.Pptx, options);
} finally {
    if (pres != null) pres.dispose();
}

Сохранение презентаций в формате Office Open XML в режиме Zip64

Файл Office Open XML представляет собой ZIP-архив, который имеет ограничение в 4 ГБ (2^32 байта) на несжатый размер файла, сжатый размер файла и общий размер архива, а также ограничение в 65,535 (2^16-1) файлов в архиве. Расширения формата ZIP64 увеличивают эти ограничения до 2^64.

Новое свойство IPptxOptions.Zip64Mode позволяет вам выбрать, когда использовать расширения формата ZIP64 для сохраненного файла Office Open XML.

Это свойство предоставляет следующие режимы:

  • Zip64Mode.IfNecessary означает, что расширения формата ZIP64 будут использоваться только в том случае, если презентация выходит за указанные выше ограничения. Это режим по умолчанию.
  • Zip64Mode.Never означает, что расширения формата ZIP64 не будут использоваться.
  • Zip64Mode.Always означает, что расширения формата ZIP64 всегда будут использоваться.

Следующее код демонстрирует, как сохранить презентацию в формате PPTX с расширениями формата ZIP64:

Presentation pres = new Presentation("Sample.pptx");
try {
    PptxOptions pptxOptions = new PptxOptions();
    pptxOptions.setZip64Mode(Zip64Mode.Always);
    
    pres.save("Sample-zip64.pptx", SaveFormat.Pptx, pptxOptions);
} finally {
    if (pres != null) pres.dispose();
}

Сохранение обновлений прогресса в процентах

Интерфейс новый IProgressCallback был добавлен к интерфейсу ISaveOptions и абстрактному классу SaveOptions. Интерфейс IProgressCallback представляет собой объект обратного вызова для сохранения обновлений прогресса в процентах.

Следующие фрагменты кода показывают, как использовать интерфейс IProgressCallback:

// Открытие файла презентации
Presentation pres = new Presentation("ConvertToPDF.pptx");
try {
    ISaveOptions saveOptions = new PdfOptions();
    saveOptions.setProgressCallback((IProgressCallback) new ExportProgressHandler());
    pres.save("ConvertToPDF.pdf", SaveFormat.Pdf, saveOptions);
} finally {
    pres.dispose();
}
class ExportProgressHandler implements IProgressCallback 
{
    public void reporting(double progressValue) 
	{
        // Используйте процентное значение прогресса здесь
        int progress = Double.valueOf(progressValue).intValue();
        System.out.println(progress + "% файл преобразован");
    }
}