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

Przegląd

Konwertowanie prezentacji PowerPoint (PPT, PPTX, ODP itp.) do formatu PDF w Javie 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 kontrolujących jakość obrazów, uwzględniać ukryte slajdy, chronić 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

Używając 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 używając metody save. Klasa Presentation udostępnia metodę save, która zazwyczaj służy do konwersji prezentacji do PDF.

Aspose.Slides pozwala na konwersję:

  • Całe prezentacje do PDF
  • Wybrane slajdy z prezentacji do PDF

Aspose.Slides eksportuje prezentacje do PDF, zapewniając, że otrzymane 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 akapitu
  • Hyperlinki
  • 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ę przekonwertować podaną prezentację do PDF, wykorzystując optymalne ustawienia przy maksymalnym poziomie jakości.

Poniższy przykład ładuje prezentację i zapisuje wszystkie widoczne slajdy do PDF przy użyciu domyślnych ustawień eksportu.

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.ppt");
try {
    presentation.save("PPT-to-PDF.pdf", SaveFormat.Pdf);
} finally {
    presentation.dispose();
}

Konwertuj PowerPoint do PDF z opcjami

Aspose.Slides udostępnia własne opcje — właściwości w klasie PdfOptions — które pozwalają dostosować wynikowy PDF, zabezpieczyć go hasłem lub określić sposób przebiegu procesu konwersji.

Konwertuj PowerPoint do PDF z własnymi opcjami

Korzystając z własnych opcji konwersji, możesz określić preferowane ustawienie jakości rastrowych obrazów, określić sposób obsługi metafili, ustawić poziom kompresji tekstu, skonfigurować DPI dla obrazów i nie tylko.

import com.aspose.slides.*;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setJpegQuality((byte)90);
pdfOptions.setSufficientResolution(300);
pdfOptions.setSaveMetafilesAsPng(true);
pdfOptions.setTextCompression(PdfTextCompression.Flate);
pdfOptions.setCompliance(PdfCompliance.Pdf15);

Presentation presentation = new Presentation("PowerPoint.pptx");

try {
    presentation.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Zachowaj osadzone pliki OLE jako załączniki PDF

Jeśli prezentacja zawiera osadzony skoroszyt Excel, możesz chcieć, aby odbiorcy PDF mieli dostęp do danych skoroszytu oraz mogli oglądać slajdy. Wywołaj metodę setIncludeOleData z wartością true, aby zachować osadzone pliki OLE jako załączniki w powstałym PDF.

Domyślna wartość to false: podglądowy obraz lub ikona obiektu OLE jest renderowana na stronie PDF, ale osadzony plik nie jest dołączany jako załącznik. Ustawienie opcji na true dodatkowo dołącza dane pliku. Podgląd pozostaje wizualną reprezentacją; załącznik pozwala odbiorcom otworzyć lub zapisać osadzony plik osobno. Obiekt OLE nie staje się interaktywnym arkuszem Excel na stronie PDF.

Poniższy przykład ładuje prezentację, która już zawiera osadzony skoroszyt Excel, i eksportuje ją do PDF z dołączonym skoroszytem.

import com.aspose.slides.*;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setIncludeOleData(true);

Presentation presentation = new Presentation("presentation.pptx");
try {
    presentation.save("presentation.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Aby sprawdzić wynik:

  1. Otwórz wyeksportowany PDF w przeglądarce obsługującej załączniki plików, takiej jak Adobe Acrobat Reader.
  2. Otwórz Panel Załączniki i znajdź osadzony skoroszyt.
  3. Zapisz załącznik i otwórz go w Excelu, aby sprawdzić dane, lub otwórz go bezpośrednio, jeśli przeglądarka na to pozwala. Podgląd na stronie PDF jest oddzielny od załącznika.

Konwertuj PowerPoint do PDF z ukrytymi slajdami

Jeśli prezentacja zawiera ukryte slajdy, możesz użyć metody setShowHiddenSlides z klasy PdfOptions, aby włączyć ukryte slajdy jako strony w powstałym PDF.

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setShowHiddenSlides(true);

    presentation.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Konwertuj PowerPoint do PDF zabezpieczonego hasłem

Poniższy przykład eksportuje prezentację do PDF, który wymaga hasła password, aby go otworzyć. Uprawnienia dostępu pozwalają na drukowanie, w tym drukowanie wysokiej jakości.

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setPassword("password");
    pdfOptions.setAccessPermissions(PdfAccessPermissions.PrintDocument | PdfAccessPermissions.HighQualityPrint);

    presentation.save("PPTX-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Wykryj podstawienia czcionek

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

import com.aspose.slides.*;

class FontSubstitutionHandler implements IWarningCallback {
    public int warning(IWarningInfo warning) {
        if (warning.getWarningType() == WarningType.DataLoss && warning.getDescription().startsWith("Font will be substituted")) {
            System.out.println("Font substitution warning: " + warning.getDescription());
        }
        return ReturnAction.Continue;
    }
}

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setWarningCallback(new FontSubstitutionHandler());

Presentation presentation = new Presentation("sample.pptx");
try {
    presentation.save("output.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Obsługa czcionek bez dedykowanego kroju pogrubionego

Prezentacja może stosować formatowanie pogrubienia do tekstu, nawet gdy jej czcionka nie posiada dedykowanego kroju pogrubionego. Tekst może nadal wyglądać na pogrubiony dzięki syntetycznemu pogrubieniu, które sztucznie zagęszcza regularne glify. Gdy taki tekst wygląda zbyt ciężko lub inaczej niż zamierzono w PDF, spróbuj wywołać PdfOptions.setRasterizeUnsupportedFontStyles z wartością true. Opcja ta renderuje dotknięty tekst jako bitmapę podczas eksportu do PDF i może poprawić jego wygląd dla niektórych czcionek. Domyślna wartość to false.

Przykładowa prezentacja zawiera dwa pola tekstowe: jedno z zwykłym tekstem i drugie z pogrubionym formatowaniem zastosowanym do tej samej czcionki, która nie posiada dedykowanego kroju pogrubionego. Poniższy przykład ładuje prezentację, włącza rasteryzację nieobsługiwanych stylów czcionki i eksportuje ją do PDF:

import com.aspose.slides.PdfOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

PdfOptions pdfOptions = new PdfOptions();
pdfOptions.setRasterizeUnsupportedFontStyles(true);

Presentation presentation = new Presentation("unsupported-bold.pptx");
try {
    presentation.save("rasterized.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Poniższe podglądy pokazują wynik przy wyłączonej i włączonej opcji. W tym przykładzie pogrubiony tekst ma cięższe kreski przy wyłączonej opcji. Po włączeniu opcji jego kreski są lżejsze; zwykły tekst pozostaje niezmieniony. Porównaj wyniki przed podjęciem decyzji o ustawieniu dla swojej prezentacji.

Opcja wyłączona (false, domyślnie) Opcja włączona (true)
PDF z wyłączoną rasteryzacją nieobsługiwanych stylów czcionki PDF z włączoną rasteryzacją nieobsługiwanych stylów czcionki

W tym przykładzie włączenie opcji zamienia wyłącznie pogrubiony tekst na bitmapę: nie może być on zaznaczony, kopiowany ani przeszukiwany jako tekst bez OCR, a jego krawędzie wydają się łagodniejsze przy 800 % powiększeniu. Zwykły tekst pozostaje przeszukiwalny. Przy wyłączonej opcji oba ciągi pozostają tekstem.

Opcja ta rasteryzuje tekst sformatowany jako pogrubiony, gdy jego czcionka nie ma dedykowanego kroju pogrubionego. Podstawienie czcionek zamiast tego wybiera inną czcionkę, gdy pierwotna nie jest dostępna.

Konwertuj wybrane slajdy z PowerPoint do PDF

Poniższy przykład eksportuje slajdy 1 i 3 z prezentacji do PDF. Numery slajdów w tej tablicy liczone są od 1, a wejściowa prezentacja musi zawierać co najmniej trzy slajdy.

import com.aspose.slides.*;

Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    int[] slides = { 1, 3 };
    presentation.save("PPTX-to-PDF.pdf", slides, SaveFormat.Pdf);
} finally {
    presentation.dispose();
}

Konwertuj PowerPoint do PDF z niestandardowym rozmiarem slajdu

Poniższy przykład kopiuje pierwszy slajd z prezentacji do nowej prezentacji o rozmiarze slajdu 612 × 792 punktów (8,5 × 11 cal). Skaluje zawartość slajdu, aby pasowała, i eksportuje pojedynczy slajd do PDF.

import com.aspose.slides.*;

float slideWidth = 612;
float slideHeight = 792;

Presentation presentation = new Presentation("SelectedSlides.pptx");
Presentation resizedPresentation = new Presentation();

try {
    resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, SlideSizeScaleType.EnsureFit);
    
    ISlide slide = presentation.getSlides().get_Item(0);
    resizedPresentation.getSlides().insertClone(0, slide);

    // Usuń pusty slajd, który został utworzony w nowej prezentacji.
    resizedPresentation.getSlides().removeAt(1);

    resizedPresentation.save("PDF_with_custom_slide_size.pdf", SaveFormat.Pdf);
} finally {
    resizedPresentation.dispose();
    presentation.dispose();
}

Konwertuj PowerPoint do PDF w widoku notatek slajdu

Poniższy przykład eksportuje prezentację do PDF, umieszczając notatki prelegenta pod każdym slajdem. Użyj prezentacji zawierającej notatki prelegenta, aby zobaczyć rezultat.

import com.aspose.slides.*;

Presentation presentation = new Presentation("SelectedSlides.pptx");
try {
    NotesCommentsLayoutingOptions notesOptions = new NotesCommentsLayoutingOptions();
    notesOptions.setNotesPosition(NotesPositions.BottomFull);
    
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setSlidesLayoutOptions(notesOptions);

    presentation.save("PDF_with_notes.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Standardy dostępności i zgodności dla PDF

Aspose.Slides pozwala używać procedury konwersji, która spełnia wytyczne Web Content Accessibility Guidelines (WCAG). Możesz eksportować dokument PowerPoint do PDF, używając dowolnego 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:

import com.aspose.slides.*;

Presentation presentation = new Presentation("pres.pptx");
try {
    PdfOptions 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: Podczas eksportu do PDF/UA, Aspose.Slides traktuje złożone grafiki, takie jak SmartArt, wykresy i formuły, jako jedną figurę. Poszczególne elementy ścieżek nie są zachowywane jako oddzielna zawartość i mogą być oznaczone jako artefakty; tekst alternatywny jest dostarczany tylko 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 można zabezpieczyć hasłem skonwertowany PDF?

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

Jak uwzględnić ukryte slajdy w PDF?

Wywołaj metodę setShowHiddenSlides z wartością true w klasie PdfOptions, aby włączyć ukryte slajdy w powstałym PDF.

Czy Aspose.Slides może zachować wysoką jakość obrazów w PDF?

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

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

Tak, Aspose.Slides umożliwia eksport PDF‑ów zgodnych z różnymi standardami, w tym PDF/A1a, PDF/A1b oraz PDF/UA, zapewniając, że dokumenty spełniają wymagania dostępności i archiwizacji.

Dodatkowe zasoby