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.
NOTE
Aspose.Slides for C++ wstawia informacje o swoim API oraz numer wersji do dokumentów wyjściowych. Na przykład, podczas konwertowania prezentacji do PDF, Aspose.Slides wypełnia pole Application wartością “Aspose.Slides” oraz pole PDF Producer wartością w formacie “Aspose.Slides v XX.XX”. Uwaga że nie można nakazać Aspose.Slides zmienić lub usunąć tych informacji z dokumentów wyjściowych.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;
}
Aby uzyskać więcej informacji o odbieraniu wywołań zwrotnych w przypadku podstawień czcionek podczas procesu renderowania, zobacz Getting Warning Callbacks for Fonts Substitution.
Aby dowiedzieć się więcej o podstawieniach czcionek, zobacz artykuł Font Substitution.
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();
Note
Aspose.Slides obsługuje operacje konwersji PDF, umożliwiając konwersję plików PDF do popularnych formatów. Możesz wykonać konwersje PDF to HTML, PDF to image, PDF to JPG oraz PDF to PNG. Inne operacje konwersji PDF do specjalistycznych formatów — PDF to SVG, PDF to TIFF i PDF to XML — są również obsługiwane.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.