Конвертировать PPT и PPTX в PDF на PHP [включены расширенные функции]
Обзор
Преобразование презентаций PowerPoint (PPT, PPTX, ODP и др.) в формат PDF в PHP предоставляет ряд преимуществ, включая совместимость с различными устройствами и сохранение макета и форматирования презентации. В этом руководстве показано, как преобразовать презентации в документы PDF, использовать различные параметры для контроля качества изображений, включать скрытые слайды, защищать PDF паролем, обнаруживать замену шрифтов, выбирать отдельные слайды для преобразования и применять стандарты соответствия к результирующим документам.
Преобразования PowerPoint в PDF
С помощью Aspose.Slides можно преобразовать презентации следующих форматов в PDF:
- PPT
- PPTX
- ODP
Чтобы преобразовать презентацию в PDF, передайте имя файла в качестве аргумента классу Presentation, а затем сохраните презентацию как PDF, используя метод save. Класс Presentation предоставляет метод save, который обычно используется для преобразования презентации в PDF.
NOTE
Aspose.Slides for PHP via Java вставляет сведения о своей API и номер версии в создаваемые документы. Например, при преобразовании презентации в PDF Aspose.Slides заполняет поле Application значением “Aspose.Slides” и поле PDF Producer значением вида “Aspose.Slides v XX.XX”. Примечание: изменить или удалить эту информацию из выходных документов нельзя.Aspose.Slides позволяет преобразовать:
- Полные презентации в PDF
- Определённые слайды из презентации в PDF
Aspose.Slides экспортирует презентации в PDF, обеспечивая максимально близкое соответствие полученных PDF оригинальным презентациям. При преобразовании точно воспроизводятся элементы и свойства, включая:
- Изображения
- Текстовые блоки и фигуры
- Форматирование текста
- Форматирование абзацев
- Гиперссылки
- Верхние и нижние колонтитулы
- Маркированные списки
- Таблицы
Преобразовать PowerPoint в PDF
Стандартный процесс преобразования PowerPoint в PDF использует параметры по умолчанию. В этом случае Aspose.Slides пытается преобразовать предоставленную презентацию в PDF, применяя оптимальные настройки с максимальным уровнем качества.
Этот пример кода показывает, как преобразовать презентацию (PPT, PPTX, ODP и др.) в PDF:
# Создать экземпляр класса Presentation, представляющего файл PowerPoint или OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
# Сохранить презентацию в формате PDF.
$presentation->save("PPT-to-PDF.pdf", SaveFormat::Pdf);
} finally {
$presentation->dispose();
}
Преобразовать PowerPoint в PDF с параметрами
Aspose.Slides предоставляет пользовательские параметры — свойства класса PdfOptions — которые позволяют настроить результирующий PDF, защитить PDF паролем или указать, как должен происходить процесс преобразования.
Преобразовать PowerPoint в PDF с пользовательскими параметрами
Используя пользовательские параметры преобразования, можно задать предпочтительные настройки качества растровых изображений, указать, как обрабатывать метафайлы, установить уровень сжатия текста, задать DPI для изображений и многое другое.
Ниже приведён пример кода, показывающий, как преобразовать презентацию PowerPoint в PDF с несколькими пользовательскими параметрами.
# Создать экземпляр класса PdfOptions.
$pdfOptions = new PdfOptions();
# Установить качество JPG‑изображений.
$pdfOptions->setJpegQuality(90);
# Установить DPI для изображений.
$pdfOptions->setSufficientResolution(300);
# Установить поведение для метафайлов.
$pdfOptions->setSaveMetafilesAsPng(true);
# Установить уровень сжатия текста для текстового содержания.
$pdfOptions->setTextCompression(PdfTextCompression::Flate);
# Определить режим соответствия PDF.
$pdfOptions->setCompliance(PdfCompliance::Pdf15);
# Создать экземпляр класса Presentation, представляющего файл PowerPoint или OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
# Сохранить презентацию в виде PDF‑документа.
$presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
$presentation->dispose();
}
Преобразовать PowerPoint в PDF с включением скрытых слайдов
Если в презентации есть скрытые слайды, можно использовать метод setShowHiddenSlides класса PdfOptions, чтобы включить скрытые слайды в виде страниц в результирующий PDF.
Этот пример кода показывает, как преобразовать презентацию PowerPoint в PDF с включёнными скрытыми слайдами:
# Создать экземпляр класса Presentation, представляющего файл PowerPoint или OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
# Создать экземпляр класса PdfOptions.
$pdfOptions = new PdfOptions();
# Добавить скрытые слайды.
$pdfOptions->setShowHiddenSlides(true);
# Сохранить презентацию в формате PDF.
$presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
$presentation->dispose();
}
Преобразовать PowerPoint в PDF с защитой паролем
Этот пример кода демонстрирует, как преобразовать презентацию PowerPoint в PDF, защищённый паролем, используя параметры защиты из класса PdfOptions:
# Создать экземпляр класса Presentation, представляющего файл PowerPoint или OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
# Создать экземпляр класса PdfOptions.
$pdfOptions = new PdfOptions();
# Установить пароль PDF и разрешения доступа.
$pdfOptions->setPassword("password");
$pdfOptions->setAccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);
# Сохранить презентацию в формате PDF.
$presentation->save("PPTX-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
$presentation->dispose();
}
Обнаружение замены шрифтов
Aspose.Slides предоставляет метод setWarningCallback в классе PdfOptions, позволяющий обнаруживать замену шрифтов во время процесса преобразования презентации в PDF.
Этот пример кода показывает, как обнаружить замену шрифтов:
class FontSubstitutionHandler {
function warning($warning)
{
if (java_values($warning->getWarningType()) == WarningType::DataLoss &&
$warning->getDescription()->startsWith("Font will be substituted")) {
echo("Font substitution warning: " . $warning->getDescription());
}
return ReturnAction::Continue;
}
}
// Установить обратный вызов предупреждений в параметрах PDF.
$pdfOptions = new PdfOptions();
$warningCallback = java_closure(new FontSubstitutionHandler(), null, java("com.aspose.slides.IWarningCallback"));
$pdfOptions->setWarningCallback($warningCallback);
// Создать экземпляр класса Presentation, представляющего файл PowerPoint или OpenDocument.
$presentation = new Presentation("sample.pptx");
try {
// Сохранить презентацию в формате PDF.
$presentation->save("output.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
$presentation->dispose();
}
Преобразовать выбранные слайды PowerPoint в PDF
Этот пример кода демонстрирует, как преобразовать только определённые слайды из презентации PowerPoint в PDF:
# Создать экземпляр класса Presentation, представляющего файл PowerPoint или OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
# Установить массив номеров слайдов.
$slides = array(1, 3);
# Сохранить презентацию в формате PDF.
$presentation->save("PPTX-to-PDF.pdf", $slides, SaveFormat::Pdf);
} finally {
$presentation->dispose();
}
Преобразовать PowerPoint в PDF с пользовательским размером слайда
Этот пример кода демонстрирует, как преобразовать презентацию PowerPoint в PDF с указанным размером слайда:
$slideWidth = 612.0;
$slideHeight = 792.0;
# Создать экземпляр класса Presentation, представляющего файл PowerPoint или OpenDocument.
$presentation = new Presentation("SelectedSlides.pptx");
# Создать новую презентацию с изменённым размером слайда.
$resizedPresentation = new Presentation();
try {
# Установить пользовательский размер слайда.
$resizedPresentation->getSlideSize()->setSize($slideWidth, $slideHeight, SlideSizeScaleType::EnsureFit);
# Клонировать первый слайд из исходной презентации.
$slide = $presentation->getSlides()->get_Item(0);
$resizedPresentation->getSlides()->insertClone(0, $slide);
# Сохранить изменённую презентацию в PDF с нотатками.
$resizedPresentation->save("PDFnotes_out.pdf", SaveFormat::Pdf);
} finally {
$resizedPresentation->dispose();
$presentation->dispose();
}
Преобразовать PowerPoint в PDF в представлении сносов
Этот пример кода демонстрирует, как преобразовать презентацию PowerPoint в PDF, включающий сноски:
# Создать экземпляр класса Presentation, представляющего файл PowerPoint или OpenDocument.
$presentation = new Presentation("SelectedSlides.pptx");
try {
# Настроить параметры PDF с расположением нотаток.
$notesOptions = new NotesCommentsLayoutingOptions();
$notesOptions->setNotesPosition(NotesPositions::BottomFull);
$pdfOptions = new PdfOptions();
$pdfOptions->setSlidesLayoutOptions($notesOptions);
# Сохранить презентацию в PDF с нотатками.
$presentation->save("PDF_with_notes.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
$presentation->dispose();
}
Доступность и стандарты соответствия PDF
Aspose.Slides позволяет использовать процедуру преобразования, соответствующую Руководству по доступности веб‑контента (WCAG). Вы можете экспортировать документ PowerPoint в PDF, соблюдая любой из следующих стандартов соответствия: PDF/A1a, PDF/A1b и PDF/UA.
Этот пример кода демонстрирует процесс преобразования PowerPoint в PDF, генерирующий несколько PDF‑файлов в соответствии с разными стандартами соответствия:
$presentation = new Presentation("pres.pptx");
try {
$pdfOptions = new PdfOptions();
$pdfOptions->setCompliance(PdfCompliance::PdfA1a);
$presentation->save("pres-a1a-compliance.pdf", SaveFormat::Pdf, $pdfOptions);
$pdfOptions->setCompliance(PdfCompliance::PdfA1b);
$presentation->save("pres-a1b-compliance.pdf", SaveFormat::Pdf, $pdfOptions);
$pdfOptions->setCompliance(PdfCompliance::PdfUa);
$presentation->save("pres-ua-compliance.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
$presentation->dispose();
}
Note
Aspose.Slides поддерживает операции преобразования PDF, позволяя конвертировать PDF‑файлы в популярные форматы. Вы можете выполнить преобразования PDF в HTML, PDF в изображение, PDF в JPG, и PDF в PNG. Поддерживаются также специализированные преобразования PDF в SVG, TIFF и XML.Примечание: При экспорте в PDF/UA Aspose.Slides рассматривает сложную графику, такую как SmartArt, диаграммы и формулы, как единый объект. Отдельные элементы пути не сохраняются как отдельный контент и могут быть отмечены как артефакты; альтернативный текст предоставляется только для всего объекта.
FAQ
Можно ли выполнять массовое преобразование нескольких файлов PowerPoint в PDF?
Да, Aspose.Slides поддерживает пакетное преобразование нескольких файлов PPT или PPTX в PDF. Вы можете перебрать файлы и программно применить процесс преобразования.
Можно ли защитить полученный PDF паролем?
Конечно. Используйте класс PdfOptions для установки пароля и определения прав доступа во время процесса преобразования.
Как включить скрытые слайды в PDF?
Используйте метод setShowHiddenSlides класса PdfOptions для включения скрытых слайдов в результирующий PDF.
Может ли Aspose.Slides сохранять высокое качество изображений в PDF?
Да, вы можете управлять качеством изображений, используя методы такие как setJpegQuality и setSufficientResolution класса PdfOptions для обеспечения высокого качества изображений в PDF.
Поддерживает ли Aspose.Slides стандарты соответствия PDF/A?
Да, Aspose.Slides позволяет экспортировать PDF, соответствующие различным стандартам, включая PDF/A1a, PDF/A1b и PDF/UA, обеспечивая соответствие ваших документов требованиям доступности и архивирования.