Konwertuj PPT i PPTX do PDF w PHP [Zawarte Zaawansowane Funkcje]

Przegląd

Konwertowanie prezentacji PowerPoint (PPT, PPTX, ODP itp.) do formatu PDF w PHP oferuje wiele korzyści, w tym kompatybilność z różnymi urządzeniami oraz zachowanie układu i formatowania prezentacji. Ten przewodnik pokazuje, jak konwertować prezentacje do dokumentów PDF, używać różnych opcji kontroli jakości obrazu, uwzględniać ukryte slajdy, zabezpieczać pliki PDF hasłem, wykrywać zastąpienia czcionek, wybierać konkretne slajdy do konwersji oraz stosować standardy zgodności do dokumentów wyjściowych.

Konwersje PowerPoint do PDF

Przy użyciu Aspose.Slides możesz konwertować prezentacje w następujących formatach do PDF:

  • PPT
  • PPTX
  • ODP

Aby skonwertować prezentację do PDF, przekaż nazwę pliku jako argument do klasy Presentation i następnie zapisz prezentację jako PDF przy użyciu metody save. Klasa Presentation udostępnia metodę save, która zazwyczaj służy do konwersji prezentacji do PDF.

Aspose.Slides umożliwia konwersję:

  • Całych prezentacji do PDF
  • Konkretnego zestawu slajdów z prezentacji do PDF

Aspose.Slides eksportuje prezentacje do PDF, zapewniając, że powstałe pliki PDF bardzo dokładnie odzwierciedlają oryginalne prezentacje. Elementy i atrybuty są renderowane precyzyjnie podczas konwersji, w tym:

  • Obrazy
  • Pola tekstowe i kształty
  • Formatowanie tekstu
  • Formatowanie akapitów
  • Hiperłącza
  • Nagłówki i stopki
  • Wypunktowania
  • Tabele

Konwertuj PowerPoint do PDF

Standardowy proces konwersji PowerPoint‑do‑PDF używa domyślnych opcji. W tym przypadku Aspose.Slides stara się skonwertować podaną prezentację do PDF przy użyciu optymalnych ustawień o maksymalnej jakości.

Ten kod pokazuje, jak skonwertować prezentację (PPT, PPTX, ODP itp.) do PDF:

# Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Zapisz prezentację jako PDF.
    $presentation->save("PPT-to-PDF.pdf", SaveFormat::Pdf);
} finally {
    $presentation->dispose();
}

Konwertuj PowerPoint do PDF z Opcjami

Aspose.Slides udostępnia niestandardowe opcje — właściwości klasy PdfOptions — pozwalające spersonalizować wynikowy PDF, zabezpieczyć go hasłem lub określić, jak ma przebiegać proces konwersji.

Konwertuj PowerPoint do PDF z Niestandardowymi Opcjami

Używając niestandardowych opcji konwersji, możesz określić preferowane ustawienie jakości dla obrazów rastrowych, określić sposób obsługi metafili, ustawić poziom kompresji tekstu, skonfigurować DPI dla obrazów i wiele innych.

Poniższy przykład kodu pokazuje, jak skonwertować prezentację PowerPoint do PDF z kilkoma niestandardowymi opcjami.

# Utwórz instancję klasy PdfOptions.
$pdfOptions = new PdfOptions();

# Ustaw jakość obrazów JPG.
$pdfOptions->setJpegQuality(90);

# Ustaw DPI dla obrazów.
$pdfOptions->setSufficientResolution(300);

# Ustaw zachowanie dla metaplików.
$pdfOptions->setSaveMetafilesAsPng(true);

# Ustaw poziom kompresji tekstu dla treści tekstowej.
$pdfOptions->setTextCompression(PdfTextCompression::Flate);

# Zdefiniuj tryb zgodności PDF.
$pdfOptions->setCompliance(PdfCompliance::Pdf15);

# Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Zapisz prezentację jako dokument PDF.
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Konwertuj PowerPoint do PDF z Ukrytymi Slajdami

Jeśli prezentacja zawiera ukryte slajdy, możesz użyć metody setShowHiddenSlides klasy PdfOptions, aby uwzględnić ukryte slajdy jako strony w wynikowym PDF.

Ten kod pokazuje, jak skonwertować prezentację PowerPoint do PDF z uwzględnieniem ukrytych slajdów:

# Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Utwórz instancję klasy PdfOptions.
    $pdfOptions = new PdfOptions();

    # Dodaj ukryte slajdy.
    $pdfOptions->setShowHiddenSlides(true);

    # Zapisz prezentację jako PDF.
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Konwertuj PowerPoint do PDF zabezpieczonego hasłem

Ten kod demonstruje, jak skonwertować prezentację PowerPoint do PDF zabezpieczonego hasłem, wykorzystując parametry ochrony z klasy PdfOptions:

# Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Utwórz instancję klasy PdfOptions.
    $pdfOptions = new PdfOptions();

    # Ustaw hasło PDF i uprawnienia dostępu.
    $pdfOptions->setPassword("password");
    $pdfOptions->setAccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);

    # Zapisz prezentację jako PDF.
    $presentation->save("PPTX-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Wykrywanie Zastąpień Czcionek

Aspose.Slides udostępnia metodę setWarningCallback w ramach klasy PdfOptions, umożliwiającą wykrycie zastąpień czcionek podczas konwersji prezentacji do PDF.

Ten kod pokazuje, jak wykrywać zastąpienia czcionek:

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;
    }
}

// Ustaw wywołanie zwrotne ostrzeżenia w opcjach PDF.
$pdfOptions = new PdfOptions();
$warningCallback = java_closure(new FontSubstitutionHandler(), null, java("com.aspose.slides.IWarningCallback"));
$pdfOptions->setWarningCallback($warningCallback);

// Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
$presentation = new Presentation("sample.pptx");
try {
    // Zapisz prezentację jako PDF.
    $presentation->save("output.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Konwertuj wybrane slajdy PowerPoint do PDF

Ten kod demonstruje, jak skonwertować wyłącznie wybrane slajdy z prezentacji PowerPoint do PDF:

# Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # Ustaw tablicę numerów slajdów.
    $slides = array(1, 3);

    # Zapisz prezentację jako PDF.
    $presentation->save("PPTX-to-PDF.pdf", $slides, SaveFormat::Pdf);
} finally {
    $presentation->dispose();
}

Konwertuj PowerPoint do PDF z niestandardowym rozmiarem slajdu

Ten kod demonstruje, jak skonwertować prezentację PowerPoint do PDF przy użyciu określonego rozmiaru slajdu:

$slideWidth = 612.0;
$slideHeight = 792.0;

# Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
$presentation = new Presentation("SelectedSlides.pptx");

# Utwórz nową prezentację z dostosowanym rozmiarem slajdu.
$resizedPresentation = new Presentation();

try {
    # Ustaw niestandardowy rozmiar slajdu.
    $resizedPresentation->getSlideSize()->setSize($slideWidth, $slideHeight, SlideSizeScaleType::EnsureFit);

    # Sklonuj pierwszy slajd z oryginalnej prezentacji.
    $slide = $presentation->getSlides()->get_Item(0);
    $resizedPresentation->getSlides()->insertClone(0, $slide);

    # Zapisz przeskalowaną prezentację jako PDF z notatkami.
    $resizedPresentation->save("PDFnotes_out.pdf", SaveFormat::Pdf);
} finally {
    $resizedPresentation->dispose();
    $presentation->dispose();
}

Konwertuj PowerPoint do PDF w widoku notatek slajdu

Ten kod demonstruje, jak skonwertować prezentację PowerPoint do PDF zawierającego notatki:

# Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
$presentation = new Presentation("SelectedSlides.pptx");
try {
    # Skonfiguruj opcje PDF z układem notatek.
    $notesOptions = new NotesCommentsLayoutingOptions();
    $notesOptions->setNotesPosition(NotesPositions::BottomFull);
    $pdfOptions = new PdfOptions();
    $pdfOptions->setSlidesLayoutOptions($notesOptions);

    # Zapisz prezentację jako PDF z notatkami.
    $presentation->save("PDF_with_notes.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

Standardy dostępności i zgodności PDF

Aspose.Slides umożliwia użycie procedury konwersji zgodnej z Web Content Accessibility Guidelines (WCAG). Możesz wyeksportować dokument PowerPoint do PDF, stosując dowolny z następujących standardów zgodności: PDF/A1a, PDF/A1b oraz PDF/UA.

Ten kod demonstruje proces konwersji PowerPoint‑do‑PDF, który generuje wiele plików PDF w oparciu o różne standardy zgodności:

$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();
}

Uwaga: Przy eksporcie do PDF/UA Aspose.Slides traktuje złożoną grafikę, taką jak SmartArt, wykresy i formuły, jako pojedynczą figurę. Poszczególne elementy ścieżek nie są zachowywane jako oddzielna zawartość i mogą być oznaczone jako artefakty; tekst alternatywny jest dostarczany jedynie dla całej figury.

FAQ

Czy mogę konwertować wiele plików PowerPoint do PDF jednocześnie?

Tak, Aspose.Slides obsługuje konwersję wsadową wielu plików PPT lub PPTX do PDF. Możesz iterować po swoich plikach i programowo zastosować proces konwersji.

Czy istnieje możliwość zabezpieczenia konwertowanego PDF hasłem?

Oczywiście. Użyj klasy PdfOptions, aby ustawić hasło i zdefiniować uprawnienia dostępu podczas procesu konwersji.

Jak włączyć ukryte slajdy w PDF?

Użyj metody setShowHiddenSlides w klasie PdfOptions, aby uwzględnić ukryte slajdy w wynikowym PDF.

Czy Aspose.Slides utrzymuje wysoką jakość obrazu w PDF?

Tak, możesz kontrolować jakość obrazu, korzystając z metod takich jak setJpegQuality i setSufficientResolution w klasie PdfOptions, aby zapewnić wysokiej jakości obrazy w PDF.

Czy Aspose.Slides obsługuje standardy zgodności PDF/A?

Tak, Aspose.Slides pozwala eksportować PDF spełniające różne standardy, w tym PDF/A1a, PDF/A1b oraz PDF/UA, zapewniając, że twoje dokumenty spełniają wymogi dostępności i archiwizacji.

Dodatkowe zasoby