Сохранить Презентацию
Обзор
Класс Презентация хранит содержимое презентации. Независимо от того, создаете ли вы презентацию с нуля или модифицируете существующую, по завершении вы захотите сохранить презентацию. С помощью Aspose.Slides для PHP через Java ее можно сохранить в виде файла или потока. Эта статья объясняет, как сохранить презентацию различными способами:
Сохранение Презентации в Файл
Сохраните презентацию в файл, вызвав метод Save класса Презентация. Просто передайте имя файла и SaveFormat в метод Save.
Следующие примеры показывают, как сохранить презентацию с использованием Aspose.Slides для PHP через Java.
# Создание объекта Presentation, представляющего PPT файл
$pres = new Presentation();
try {
# ...выполнение каких-то операций...
# Сохраните вашу презентацию в файл
$pres->save("demoPass.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Сохранение Презентации в Поток
Можно сохранить презентацию в поток, передав выходной поток методу Save класса Презентация. Существует множество типов потоков, в которые можно сохранить презентацию. В следующем примере мы создали новый файл Презентации, добавили текст в фигуру и сохранили презентацию в поток.
# Создание объекта Presentation, представляющего PPT файл
$pres = new Presentation();
try {
$shape = $pres->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 200, 200, 200, 200);
# Добавить текст к фигуре
$shape->getTextFrame()->setText("Этот демонстрационный пример показывает, как создать файл PowerPoint и сохранить его в поток.");
$os = new Java("java.io.FileOutputStream", "Save_As_Stream_out.pptx");
$pres->save($os, SaveFormat::Pptx);
$os->close();
} catch (JavaException $e) {
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Сохранение Презентации с Предопределенным Типом Вида
Aspose.Slides для PHP через Java предоставляет возможность установить тип вида для создаваемой презентации при ее открытии в PowerPoint с помощью класса ViewProperties. Свойство setLastView используется для установки типа вида с помощью перечисления ViewType.
# Открытие файла презентации
$pres = new Presentation();
try {
# Установка типа вида
$pres->getViewProperties()->setLastView(ViewType::SlideMasterView);
# Сохранение презентации
$pres->save("newDemo.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$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 файл
$pres = new Presentation();
try {
# Получить первый слайд
$slide = $pres->getSlides()->get_Item(0);
# Добавить автозащиту типа линия
$slide->getShapes()->addAutoShape(ShapeType::Line, 50, 150, 300, 0);
# Установить параметры сохранения Строгого формата Office Open XML
$options = new PptxOptions();
$options->setConformance(Conformance->Iso29500_2008_Strict);
# Сохранить вашу презентацию в файл
$pres->save("demoPass.pptx", SaveFormat::Pptx, $options);
} finally {
if (!java_is_null($pres)) {
$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:
$pres = new Presentation("Sample.pptx");
try {
$pptxOptions = new PptxOptions();
$pptxOptions->setZip64Mode(Zip64Mode::Always);
$pres->save("Sample-zip64.pptx", SaveFormat::Pptx, $pptxOptions);
} finally {
$pres->dispose();
}
Примечание
Сохранение в режиме Zip64Mode.Never вызовет PptxException, если презентация не может быть сохранена в формате ZIP32.Сохранение Обновлений Прогресса в Процентах
Новый интерфейс IProgressCallback был добавлен в интерфейс ISaveOptions и абстрактный класс SaveOptions . Интерфейс IProgressCallback представляет собой объект обратного вызова для сохранения обновлений прогресса в процентах.
Следующие примеры кода показывают, как использовать интерфейс IProgressCallback:
class ExportProgressHandler {
function reporting($progressValue) {
# Используйте значение процента прогресса здесь
$progress = java("java.lang.Double")->valueOf($progressValue)->intValue();
echo($progress . "% файл конвертирован");
}
}
# Открытие файла презентации
$pres = new Presentation("ConvertToPDF.pptx");
try {
$saveOptions = new PdfOptions();
$progressHandler = java_closure(new ExportProgressHandler(), null, java("com.aspose.slides.IProgressCallback"));
$saveOptions->setProgressCallback($progressHandler);
$pres->save("ConvertToPDF.pdf", SaveFormat::Pdf, $saveOptions);
} finally {
$pres->dispose();
}