Konwertuj PPT i PPTX do PDF w C++ [Zawarte zaawansowane funkcje]

Przegląd

Konwertowanie prezentacji PowerPoint (PPT, PPTX, ODP itp.) do formatu PDF w C++ oferuje kilka zalet, w tym kompatybilność z różnymi urządzeniami oraz zachowanie układu i formatowania Twojej prezentacji. Ten przewodnik pokazuje, jak konwertować prezentacje do dokumentów PDF, używać różnych opcji kontrolowania jakości obrazów, uwzględniać ukryte slajdy, zabezpieczać pliki PDF hasłem, wykrywać podstawienia czcionek, wybierać określone 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 jest używana do konwersji prezentacji na PDF.

Aspose.Slides umożliwia konwersję:

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

Aspose.Slides eksportuje prezentacje do PDF, zapewniając, że powstałe pliki PDF ściśle odpowiadają oryginalnym prezentacjom. 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

Konwertuj PowerPoint do PDF

Standardowy proces konwersji PowerPoint do PDF używa opcji domyślnych. W tym przypadku Aspose.Slides próbuje przekonwertować podaną prezentację na PDF, wykorzystując optymalne ustawienia przy maksymalnych poziomach jakości.

Ten kod C++ pokazuje, jak przekonwertować prezentację (PPT, PPTX, ODP itp.) na PDF:

// Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
auto presentation = MakeObject<Presentation>(u"PowerPoint.ppt");

// Zapisz prezentację jako PDF.
presentation->Save(u"PPT-to-PDF.pdf", SaveFormat::Pdf);

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ć rezultujący PDF, zabezpieczyć PDF hasłem lub określić, jak ma przebiegać proces konwersji.

Konwertuj PowerPoint do PDF z własnymi opcjami

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

Poniższy przykład kodu demonstruje, jak przekonwertować prezentację PowerPoint do PDF z kilkoma własnymi opcjami.

// Utwórz instancję klasy PdfOptions.
auto pdfOptions = MakeObject<PdfOptions>();

// Ustaw jakość obrazów JPG.
pdfOptions->set_JpegQuality(90);

// Ustaw DPI dla obrazów.
pdfOptions->set_SufficientResolution(300);

// Ustaw zachowanie dla metafili.
pdfOptions->set_SaveMetafilesAsPng(true);

// Ustaw poziom kompresji tekstu dla treści tekstowej.
pdfOptions->set_TextCompression(PdfTextCompression::Flate);

// Zdefiniuj tryb zgodności PDF.
pdfOptions->set_Compliance(PdfCompliance::Pdf15);

// Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument file.
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");

// Zapisz prezentację jako dokument PDF.
presentation->Save(u"PowerPoint-to-PDF.pdf", SaveFormat::Pdf, pdfOptions);

presentation->Dispose();

Konwertuj PowerPoint do PDF z ukrytymi slajdami

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

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

// Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");

// Utwórz instancję klasy PdfOptions.
auto pdfOptions = MakeObject<PdfOptions>();

// Dodaj ukryte slajdy.
pdfOptions->set_ShowHiddenSlides(true);

// Zapisz prezentację jako PDF.
presentation->Save(u"PowerPoint-to-PDF.pdf", SaveFormat::Pdf, pdfOptions);

presentation->Dispose();

Konwertuj PowerPoint do PDF zabezpieczonego hasłem

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

// Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");

// Utwórz instancję klasy PdfOptions.
auto pdfOptions = MakeObject<PdfOptions>();

// Ustaw hasło PDF i uprawnienia dostępu.
pdfOptions->set_Password(u"password");
pdfOptions->set_AccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);

// Zapisz prezentację jako PDF.
presentation->Save(u"PPTX-to-PDF.pdf", SaveFormat::Pdf, pdfOptions);

presentation->Dispose();

Wykryj podstawienia czcionek

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

Ten kod C++ pokazuje, jak wykrywać podstawienia czcionek:

// Implementacja wywołania zwrotnego ostrzeżenia.
class FontSubstitutionHandler : public IWarningCallback
{
public:
    ReturnAction Warning(SharedPtr<IWarningInfo> warning) override;
};

ReturnAction FontSubstitutionHandler::Warning(SharedPtr<IWarningInfo> warning)
{
    if (warning->get_WarningType() == WarningType::DataLoss && 
        warning->get_Description().StartsWith(u"Font will be substituted"))
    {
        Console::WriteLine(u"Font substitution warning: {0}", warning->get_Description());
    }

    return ReturnAction::Continue;
}

int main()
{
    // Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
    auto presentation = MakeObject<Presentation>(u"sample.pptx");

    // Ustaw wywołanie zwrotne ostrzeżeń w opcjach PDF.
    auto pdfOptions = MakeObject<PdfOptions>();
    pdfOptions->set_WarningCallback(MakeObject<FontSubstitutionHandler>());

    // Zapisz prezentację jako PDF.
    presentation->Save(u"output.pdf", SaveFormat::Pdf, pdfOptions);
    
    presentation->Dispose();

    return 0;
}

Konwertuj wybrane slajdy z PowerPoint do PDF

Ten kod C++ demonstruje, jak przekonwertować tylko określone slajdy z prezentacji PowerPoint do PDF:

// Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");

// Ustaw tablicę numerów slajdów.
auto slides = MakeArray<int32_t>({ 1, 3 });

// Zapisz prezentację jako PDF.
presentation->Save(u"PPTX-to-PDF.pdf", slides, SaveFormat::Pdf);

presentation->Dispose();

Konwertuj PowerPoint do PDF z własnym rozmiarem slajdów

Ten kod C++ demonstruje, jak przekonwertować prezentację PowerPoint do PDF z określonym rozmiarem slajdu:

auto slideWidth = 612;
auto slideHeight = 792;

// Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
auto presentation = MakeObject<Presentation>(u"SelectedSlides.pptx");

// Utwórz nową prezentację z dostosowanym rozmiarem slajdu.
auto resizedPresentation = MakeObject<Presentation>();

// Ustaw własny rozmiar slajdu.
resizedPresentation->get_SlideSize()->SetSize(slideWidth, slideHeight, SlideSizeScaleType::EnsureFit);

// Sklonuj pierwszy slajd z oryginalnej prezentacji.
auto slide = presentation->get_Slide(0);
resizedPresentation->get_Slides()->InsertClone(0, slide);

// Zapisz przeskalowaną prezentację jako PDF z notatkami.
resizedPresentation->Save(u"PDF_with_notes.pdf", SaveFormat::Pdf);

resizedPresentation->Dispose();
presentation->Dispose();

Konwertuj PowerPoint do PDF w widoku notatek slajdu

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

// Utwórz instancję klasy Presentation, która reprezentuje plik PowerPoint lub OpenDocument.
auto presentation = MakeObject<Presentation>(u"SelectedSlides.pptx");

// Skonfiguruj opcje PDF z układem notatek.
auto notesOptions = MakeObject<NotesCommentsLayoutingOptions>();
notesOptions->set_NotesPosition(NotesPositions::BottomFull);
auto pdfOptions = MakeObject<PdfOptions>();
pdfOptions->set_SlidesLayoutOptions(notesOptions);

// Zapisz prezentację jako PDF z notatkami.
presentation->Save(u"PDF_with_notes.tiff", SaveFormat::Pdf, pdfOptions);

presentation->Dispose();

Standardy dostępności i zgodności dla 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 poniższych standardów zgodności: PDF/A1a, PDF/A1b oraz PDF/UA.

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

auto presentation = MakeObject<Presentation>(u"pres.pptx");

auto pdfOptionsA1a = MakeObject<PdfOptions>();

pdfOptionsA1a->set_Compliance(PdfCompliance::PdfA1a);
presentation->Save(u"pres-a1a-compliance.pdf", SaveFormat::Pdf, pdfOptionsA1a);

auto pdfOptionsA1b = MakeObject<PdfOptions>();
pdfOptionsA1b->set_Compliance(PdfCompliance::PdfA1b);
presentation->Save(u"pres-a1b-compliance.pdf", SaveFormat::Pdf, pdfOptionsA1b);

auto pdfOptionsUa = MakeObject<PdfOptions>();
pdfOptionsUa->set_Compliance(PdfCompliance::PdfUa);

presentation->Save(u"pres-ua-compliance.pdf", SaveFormat::Pdf, pdfOptionsUa);

presentation->Dispose();

Uwaga: Podczas eksportowania do PDF/UA, Aspose.Slides traktuje złożoną grafikę, taką jak SmartArt, wykresy i formuły, jako jedną figurę. Poszczególne elementy ścieżki 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żliwe jest zabezpieczenie konwertowanego PDF hasłem?

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

Jak uwzględnić ukryte slajdy w PDF?

Użyj metody set_ShowHiddenSlides w klasie PdfOptions, aby uwzględnić ukryte slajdy w powstałym PDF.

Czy Aspose.Slides może utrzymać wysoką jakość obrazu w PDF?

Tak, możesz kontrolować jakość obrazu, używając metod takich jak set_JpegQuality i set_SufficientResolution w klasie PdfOptions, aby zapewnić wysoką jakość obrazów w 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 dotyczące dostępności i archiwizacji.

Dodatkowe zasoby