Konwertuj PPT i PPTX do PDF w Pythonie za pośrednictwem Javy [Zawarte Zaawansowane Funkcje]

Przegląd

Konwertowanie prezentacji PowerPoint (PPT, PPTX, ODP itp.) do formatu PDF w Pythonie za pośrednictwem Javy oferuje wiele zalet, 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ć podstawienia czcionek, wybierać konkretne slajdy do konwersji oraz stosować standardy zgodności w dokumentach wyjściowych.

Konwersje PowerPoint do PDF

Za pomocą Aspose.Slides możesz konwertować prezentacje w następujących formatach do PDF:

  • PPT
  • PPTX
  • ODP

Aby przekonwertować 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 jest zazwyczaj używana do konwersji prezentacji do PDF.

Aspose.Slides umożliwia:

  • Konwertowanie całych prezentacji do PDF
  • Konwertowanie wybranych slajdów z prezentacji do PDF

Aspose.Slides eksportuje prezentacje do PDF, zapewniając, że otrzymane pliki PDF są bardzo zbliżone do oryginalnych prezentacji. Elementy i atrybuty są renderowane dokładnie podczas konwersji, w tym:

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

Konwertowanie PowerPoint do PDF

Standardowa konwersja używa domyślnych ustawień eksportu PDF. Użyj opcji niestandardowych, gdy potrzebujesz kontrolować jakość obrazu, zawartość strony lub zgodność PDF.

Zainstaluj Aspose.Slides for Python via Java oraz kompatybilne środowisko Java przed uruchomieniem przykładów. Każdy przykład odczytuje presentation.pptx z bieżącego katalogu; zamień go na swój plik PPT, PPTX lub ODP. Uruchom JVM raz na proces Pythona.

Ten kod konwertuje prezentację do PDF:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    presentation.save("presentation.pdf", SaveFormat.Pdf)
finally:
    presentation.dispose()

Konwertowanie PowerPoint do PDF z Opcjami

Aspose.Slides udostępnia opcje niestandardowe — właściwości w klasie PdfOptions — które pozwalają dostosować wynikowy PDF, zabezpieczyć PDF hasłem lub określić, jak ma przebiegać proces konwersji.

Konwertowanie PowerPoint do PDF z Opcjami Niestandardowymi

Korzystając z opcji konwersji, możesz określić preferowane ustawienie jakości rastrowych obrazów, zdefiniować sposób obsługi metaplik, ustawić poziom kompresji tekstu, skonfigurować DPI obrazów i wiele więcej.

Poniższy przykład kodu demonstruje konwersję prezentacji PowerPoint do PDF z kilkoma opcjami niestandardowymi.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PdfCompliance, PdfOptions, PdfTextCompression, Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    pdf_options = PdfOptions()
    pdf_options.setJpegQuality(jpype.JByte(90))
    pdf_options.setSufficientResolution(300)
    pdf_options.setSaveMetafilesAsPng(True)
    pdf_options.setTextCompression(PdfTextCompression.Flate)
    pdf_options.setCompliance(PdfCompliance.Pdf15)
    presentation.save("presentation-custom.pdf", SaveFormat.Pdf, pdf_options)
finally:
    presentation.dispose()

Konwertowanie PowerPoint do PDF z Ukrytymi Slajdami

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

Ten kod pokazuje, jak konwertować prezentację PowerPoint do PDF z uwzględnionymi ukrytymi slajdami:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PdfOptions, Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    pdf_options = PdfOptions()
    pdf_options.setShowHiddenSlides(True)
    presentation.save("presentation-hidden-slides.pdf", SaveFormat.Pdf, pdf_options)
finally:
    presentation.dispose()

Konwertowanie PowerPoint do PDF zabezpieczonego hasłem

Ten kod demonstruje, jak przekonwertować prezentację PowerPoint do PDF zabezpieczonego hasłem przy użyciu parametrów ochrony z klasy PdfOptions:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PdfAccessPermissions, PdfOptions, Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    pdf_options = PdfOptions()
    pdf_options.setPassword("password")
    permissions = PdfAccessPermissions.PrintDocument | PdfAccessPermissions.HighQualityPrint
    pdf_options.setAccessPermissions(permissions)
    presentation.save("presentation-protected.pdf", SaveFormat.Pdf, pdf_options)
finally:
    presentation.dispose()

Wykrywanie Podstawień Czcionek

Aspose.Slides udostępnia metodę setWarningCallback w klasie PdfOptions, umożliwiając wykrycie podstawień czcionek podczas procesu konwersji prezentacji do PDF.

Użyj proxy JPype, aby otrzymywać wywołania zwrotne ostrzeżeń z API Javy. Przed sprawdzeniem prefiksu skonwertuj ciąg opisu z Javy na ciąg Pythona:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PdfOptions, Presentation, ReturnAction, SaveFormat, WarningType

class FontSubstitutionHandler:
    def warning(self, warning):
        description = str(warning.getDescription())
        if warning.getWarningType() == WarningType.DataLoss and description.startswith("Font will be substituted"):
            print(f"Font substitution warning: {description}")
        return ReturnAction.Continue


presentation = Presentation("presentation.pptx")
try:
    handler = FontSubstitutionHandler()
    callback = jpype.JProxy("com.aspose.slides.IWarningCallback", inst=handler)
    pdf_options = PdfOptions()
    pdf_options.setWarningCallback(callback)
    presentation.save("presentation-font-warnings.pdf", SaveFormat.Pdf, pdf_options)
finally:
    presentation.dispose()

Konwertowanie Wybranych Slajdów w PowerPoint do PDF

Numery slajdów przekazywane do Presentation.save są numerowane od 1. Ten przykład eksportuje slajdy 1 i 3, jeśli oba istnieją:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    if presentation.getSlides().size() >= 3:
        slide_numbers = jpype.JArray(jpype.JInt)([1, 3])
        presentation.save("presentation-selected-slides.pdf", slide_numbers, SaveFormat.Pdf)
    else:
        print("The presentation must contain at least three slides.")
finally:
    presentation.dispose()

Konwertowanie PowerPoint do PDF z Niestandardowym Rozmiarem Slajdu

Ten przykład eksportuje pierwszy slajd na stronie o wymiarach 612 × 792 punktów (US Letter). Klonuje slajd w nowej prezentacji o określonym rozmiarze:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat, SlideSizeScaleType

presentation = Presentation("presentation.pptx")
try:
    resized_presentation = Presentation()
    try:
        resized_presentation.getSlideSize().setSize(612.0, 792.0, SlideSizeScaleType.EnsureFit)
        if presentation.getSlides().size() > 0:
            slide = presentation.getSlides().get_Item(0)
            resized_presentation.getSlides().insertClone(0, slide)
            resized_presentation.getSlides().removeAt(1)
            resized_presentation.save("presentation-custom-size.pdf", SaveFormat.Pdf)
        else:
            print("The presentation contains no slides.")
    finally:
        resized_presentation.dispose()
finally:
    presentation.dispose()

Konwertowanie PowerPoint do PDF w Widoku Notatek Slajdu

Ten kod demonstruje, jak przekonwertować prezentację PowerPoint do PDF, który zawiera notatki:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import NotesCommentsLayoutingOptions, NotesPositions, PdfOptions, Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    notes_options = NotesCommentsLayoutingOptions()
    notes_options.setNotesPosition(NotesPositions.BottomFull)
    pdf_options = PdfOptions()
    pdf_options.setSlidesLayoutOptions(notes_options)
    presentation.save("presentation-with-notes.pdf", SaveFormat.Pdf, pdf_options)
finally:
    presentation.dispose()

Standardy Dostępności i Zgodności dla PDF

Przy tworzeniu dostępnych PDF‑ów, odwołaj się do Web Content Accessibility Guidelines (WCAG). Użyj PdfOptions.setCompliance, aby wybrać standard wyjściowy: PDF/A1a, PDF/A1b i PDF/UA.

Ten kod demonstruje proces konwersji PowerPoint do PDF, który generuje wiele plików PDF w zależności od różnych standardów zgodności:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import PdfCompliance, PdfOptions, Presentation, SaveFormat

presentation = Presentation("presentation.pptx")
try:
    pdf_options = PdfOptions()
    pdf_options.setCompliance(PdfCompliance.PdfA1a)
    presentation.save("presentation-a1a.pdf", SaveFormat.Pdf, pdf_options)
    pdf_options.setCompliance(PdfCompliance.PdfA1b)
    presentation.save("presentation-a1b.pdf", SaveFormat.Pdf, pdf_options)
    pdf_options.setCompliance(PdfCompliance.PdfUa)
    presentation.save("presentation-ua.pdf", SaveFormat.Pdf, pdf_options)
finally:
    presentation.dispose()

Uwaga: Podczas eksportu do PDF/UA, Aspose.Slides traktuje złożone grafiki, takie jak SmartArt, wykresy i formuły, jako pojedynczą figurę. Poszczególne elementy ścieżek nie są zachowywane jako odrębna treść i mogą być oznaczone jako artefakty; tekst alternatywny jest dostarczany wyłącznie 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 stosować proces konwersji.

Czy można zabezpieczyć konwertowany PDF hasłem?

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

Jak uwzględnić ukryte slajdy w PDF?

Użyj metody setShowHiddenSlides w klasie PdfOptions, aby włączyć ukryte slajdy w wynikowym PDF.

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

Tak, możesz kontrolować jakość obrazu, używając metod takich jak setJpegQuality i setSufficientResolution w klasie PdfOptions, aby zapewnić wysoką jakość obrazów w PDF.

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

Tak, Aspose.Slides pozwala eksportować PDF‑y zgodne z różnymi standardami, w tym PDF/A1a, PDF/A1b i PDF/UA, przeznaczone do dostępności lub archiwizacji. Wybierz odpowiedni standard i zweryfikuj wynik względem swoich wymagań.

Dodatkowe zasoby