Converteer PPT en PPTX naar PDF in C++ [Geavanceerde functies inbegrepen]
Overzicht
Het converteren van PowerPoint‑presentaties (PPT, PPTX, ODP, enz.) naar PDF‑formaat in C++ biedt verschillende voordelen, waaronder compatibiliteit op verschillende apparaten en het behoud van de lay‑out en opmaak van uw presentatie. Deze handleiding toont hoe u presentaties naar PDF‑documenten kunt converteren, verschillende opties kunt gebruiken om de beeldkwaliteit te regelen, verborgen dia’s kunt opnemen, PDF‑bestanden met een wachtwoord kunt beveiligen, lettertype‑substituties kunt detecteren, specifieke dia’s voor conversie kunt selecteren en nalevingsstandaarden kunt toepassen op de gegenereerde documenten.
PowerPoint‑naar‑PDF‑conversies
Met Aspose.Slides kunt u presentaties in de volgende indelingen naar PDF converteren:
- PPT
- PPTX
- ODP
Om een presentatie naar PDF te converteren, geeft u de bestandsnaam als argument aan de Presentatie‑klasse en slaat u vervolgens de presentatie op als PDF met de Save‑methode. De Presentatie‑klasse biedt de Save‑methode die gewoonlijk wordt gebruikt om een presentatie naar PDF te converteren.
Note
Aspose.Slides for C++ voegt zijn API‑informatie en versienummer toe aan uitvoer‑documenten. Bijvoorbeeld, bij het converteren van een presentatie naar PDF vult Aspose.Slides het veld Application met “Aspose.Slides” en het PDF‑Producer‑veld met een waarde in de vorm “Aspose.Slides v XX.XX”. Let op dat u Aspose.Slides niet kunt instrueren om deze informatie uit uitvoer‑documenten te verwijderen of te wijzigen.Aspose.Slides stelt u in staat om te converteren:
- Complete presentaties naar PDF
- Specifieke dia’s uit een presentatie naar PDF
Aspose.Slides exporteert presentaties naar PDF, waarbij de resulterende PDF‑bestanden nauwkeurig overeenkomen met de originele presentaties. Elementen en attributen worden correct gerenderd tijdens de conversie, waaronder:
- Afbeeldingen
- Tekstvakken en vormen
- Tekstopmaak
- Alinea‑opmaak
- Hyperlinks
- Kop‑ en voetteksten
- Opsommingstekens
- Tabellen
PowerPoint naar PDF converteren
Het standaard PowerPoint‑naar‑PDF‑conversieproces gebruikt de standaardopties. In dit geval probeert Aspose.Slides de opgegeven presentatie naar PDF te converteren met optimale instellingen op maximale kwaliteit.
Het volgende voorbeeld laadt een presentatie en slaat alle zichtbare dia’s op als PDF met de standaard export‑instellingen.
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto presentation = MakeObject<Presentation>(u"PowerPoint.ppt");
presentation->Save(u"PPT-to-PDF.pdf", SaveFormat::Pdf);
presentation->Dispose();
Note
Aspose biedt een gratis online PowerPoint‑naar‑PDF‑converter die het presentatiet‑naar‑PDF‑proces demonstreert. U kunt een test uitvoeren met deze converter voor een live‑implementatie van de hier beschreven procedure.PowerPoint naar PDF converteren met opties
Aspose.Slides biedt aangepaste opties – eigenschappen onder de PdfOptions‑klasse – waarmee u het resulterende PDF‑bestand kunt aanpassen, het PDF‑bestand met een wachtwoord kunt beveiligen of kunt aangeven hoe het conversie‑proces moet verlopen.
PowerPoint naar PDF converteren met aangepaste opties
Met aangepaste conversie‑opties kunt u uw gewenste kwaliteitsinstelling voor raster‑afbeeldingen definiëren, bepalen hoe metafiles worden afgehandeld, een compressieniveau voor tekst instellen, DPI voor afbeeldingen configureren, enzovoort.
Het volgende voorbeeld exporteert een presentatie naar PDF 1.5 met JPEG‑kwaliteit ingesteld op 90, beeldresolutie op 300 DPI, metafiles opgeslagen als PNG en Flate‑tekstcompressie.
#include <DOM/Presentation.h>
#include <Export/PdfCompliance.h>
#include <Export/PdfOptions.h>
#include <Export/PdfTextCompression.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto pdfOptions = MakeObject<PdfOptions>();
pdfOptions->set_JpegQuality(90);
pdfOptions->set_SufficientResolution(300);
pdfOptions->set_SaveMetafilesAsPng(true);
pdfOptions->set_TextCompression(PdfTextCompression::Flate);
pdfOptions->set_Compliance(PdfCompliance::Pdf15);
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");
presentation->Save(u"PowerPoint-to-PDF.pdf", SaveFormat::Pdf, pdfOptions);
presentation->Dispose();
Ingesloten OLE‑bestanden behouden als PDF‑bijlagen
Bevat een presentatie een ingesloten Excel‑werkmap, wilt u mogelijk dat PDF‑ontvangers zowel de gegevens van de werkmap als de dia’s kunnen bekijken. Roep PdfOptions::set_IncludeOleData aan met true om ingesloten OLE‑bestanden te behouden als bijlagen in het resulterende PDF.
Standaard is de waarde false: de preview‑afbeelding of het pictogram van het OLE‑object wordt op de PDF‑pagina weergegeven, maar het ingesloten bestand wordt niet als bijlage toegevoegd. Als u de optie op true zet, wordt de bestandsdata bovendien bijgevoegd. De preview blijft een visuele weergave; de bijlage stelt ontvangers in staat het ingesloten bestand apart te openen of op te slaan. Het OLE‑object wordt niet een interactief Excel‑werkblad op de PDF‑pagina.
Het volgende voorbeeld laadt een presentatie die al een ingesloten Excel‑werkmap bevat en exporteert deze naar PDF met de werkmap als bijlage.
#include <DOM/Presentation.h>
#include <Export/PdfOptions.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto pdfOptions = MakeObject<PdfOptions>();
pdfOptions->set_IncludeOleData(true);
auto presentation = MakeObject<Presentation>(u"presentation.pptx");
presentation->Save(u"presentation.pdf", SaveFormat::Pdf, pdfOptions);
presentation->Dispose();
Om het resultaat te controleren:
- Open het geëxporteerde PDF‑bestand in een viewer die bestands‑bijlagen ondersteunt, zoals Adobe Acrobat Reader.
- Open het Attachments‑paneel van de viewer en zoek de ingesloten werkmap.
- Sla de bijlage op en open deze in Excel om de gegevens te inspecteren, of open deze direct als de viewer dit toelaat. De preview op de PDF‑pagina staat los van de bijlage.
Note
De PDF/A‑standaarden leggen beperkingen op voor bijlagen: PDF/A‑1 verbiedt ingesloten bestanden, PDF/A‑2 staat alleen PDF/A‑bijlagen toe, en PDF/A‑3 staat andere bestandstypen toe, inclusief Excel‑werkmappen. Dit zijn eisen van de standaarden, geen beperkingen specifiek voor Aspose.Slides. Dit voorbeeld gebruikt de standaard PDF‑nalevingsinstelling en toont geen PDF/A‑export.PowerPoint naar PDF converteren met verborgen dia’s
Bevat een presentatie verborgen dia’s, dan kunt u de set_ShowHiddenSlides‑methode van de PdfOptions‑klasse gebruiken om de verborgen dia’s als pagina’s in het resulterende PDF‑bestand op te nemen.
Het volgende voorbeeld exporteert een presentatie naar PDF, inclusief alle verborgen dia’s.
#include <DOM/Presentation.h>
#include <Export/PdfOptions.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto pdfOptions = MakeObject<PdfOptions>();
pdfOptions->set_ShowHiddenSlides(true);
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");
presentation->Save(u"PowerPoint-to-PDF.pdf", SaveFormat::Pdf, pdfOptions);
presentation->Dispose();
PowerPoint naar een wachtwoord‑beveiligde PDF converteren
Het volgende voorbeeld exporteert een presentatie naar een PDF die geopend moet worden met het wachtwoord password. De toegangsrechten staan afdrukken toe, inclusief afdrukken van hoge kwaliteit.
#include <DOM/Presentation.h>
#include <Export/PdfAccessPermissions.h>
#include <Export/PdfOptions.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto pdfOptions = MakeObject<PdfOptions>();
pdfOptions->set_Password(u"password");
pdfOptions->set_AccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");
presentation->Save(u"PPTX-to-PDF.pdf", SaveFormat::Pdf, pdfOptions);
presentation->Dispose();
Lettertype‑substituties detecteren
Aspose.Slides biedt de set_WarningCallback‑methode onder de PdfOptions‑klasse, waarmee u lettertype‑substituties tijdens het PowerPoint‑naar‑PDF‑conversieproces kunt detecteren.
Het volgende voorbeeld exporteert een presentatie naar PDF en schrijft waarschuwingen over lettertype‑substituties naar de console. Een waarschuwing wordt alleen weergegeven wanneer een niet‑beschikbaar lettertype wordt vervangen tijdens de export.
#include <DOM/Presentation.h>
#include <Export/PdfOptions.h>
#include <Export/SaveFormat.h>
#include <Warnings/IWarningCallback.h>
#include <Warnings/IWarningInfo.h>
#include <Warnings/ReturnAction.h>
#include <Warnings/WarningType.h>
#include <system/console.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace Aspose::Slides::Warnings;
using namespace System;
class FontSubstitutionHandler : public IWarningCallback
{
public:
ReturnAction Warning(SharedPtr<IWarningInfo> warning) override
{
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;
}
};
auto pdfOptions = MakeObject<PdfOptions>();
auto warningHandler = MakeObject<FontSubstitutionHandler>();
pdfOptions->set_WarningCallback(warningHandler);
auto presentation = MakeObject<Presentation>(u"sample.pptx");
presentation->Save(u"output.pdf", SaveFormat::Pdf, pdfOptions);
presentation->Dispose();
Note
Voor meer informatie over lettertype‑substitutie, zie het artikel Font Substitution.Omgaan met lettertypen zonder een toegewijd vette stijl
Een presentatie kan vette opmaak toepassen op tekst zelfs wanneer het gebruikte lettertype geen aparte vette stijl heeft. De tekst kan nog steeds vet lijken door synthetische verdikking, waarbij de normale glyphs kunstmatig worden verdikt. Wanneer die tekst te zwaar of anderszins afwijkt van het beoogde uiterlijk in PDF, kunt u PdfOptions::set_RasterizeUnsupportedFontStyles aanroepen met true. Deze optie rendert de getroffen tekst als bitmap tijdens de PDF‑export en kan de weergave voor bepaalde lettertypen verbeteren. Standaard is de waarde false.
De voorbeeldpresentatie bevat twee tekstvakken: één met gewone tekst en één met vette opmaak toegepast op hetzelfde lettertype, dat geen eigen vette stijl heeft. Het volgende voorbeeld laadt de presentatie, schakelt rasterisatie van niet‑ondersteunde lettertype‑stijlen in, en exporteert deze naar PDF:
#include <DOM/Presentation.h>
#include <Export/PdfOptions.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto pdfOptions = MakeObject<PdfOptions>();
pdfOptions->set_RasterizeUnsupportedFontStyles(true);
auto presentation = MakeObject<Presentation>(u"unsupported-bold.pptx");
presentation->Save(u"rasterized.pdf", SaveFormat::Pdf, pdfOptions);
presentation->Dispose();
De volgende voorbeelden tonen de uitvoer met de optie uitgeschakeld en ingeschakeld. In dit voorbeeld heeft de vette tekst zwaardere lijntjes wanneer de optie is uitgeschakeld. Met de optie ingeschakeld zijn de lijntjes lichter; de gewone tekst blijft ongewijzigd. Vergelijk de resultaten voordat u de instelling kiest voor uw presentatie.
Optie uitgeschakeld (false, standaard) |
Optie ingeschakeld (true) |
|---|---|
![]() |
![]() |
In dit voorbeeld zet het inschakelen van de optie alleen de vette tekst om in een bitmap: deze kan niet worden geselecteerd, gekopieerd of gezocht als tekst zonder OCR, en de randen lijken zachter bij 800 % zoom. De gewone tekst blijft doorzoekbaar. Met de optie uitgeschakeld blijven beide tekststrengen tekst.
Deze optie rastert tekst die vet is opgemaakt wanneer het lettertype geen aparte vette stijl heeft. Lettertype‑substitutie kiest in plaats daarvan een ander lettertype wanneer het origineel niet beschikbaar is.
Geselecteerde dia’s uit PowerPoint naar PDF converteren
Het volgende voorbeeld exporteert dia 1 en 3 uit een presentatie naar PDF. Dia‑nummers in deze array beginnen bij één, en de invoer‑presentatie moet ten minste drie dia’s bevatten.
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/array.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");
auto slides = MakeArray<int32_t>({ 1, 3 });
presentation->Save(u"PPTX-to-PDF.pdf", slides, SaveFormat::Pdf);
presentation->Dispose();
PowerPoint naar PDF converteren met aangepaste dia‑grootte
Het volgende voorbeeld kopieert de eerste dia uit een presentatie naar een nieuwe presentatie met een dia‑grootte van 612 × 792 punten (8,5 × 11 inch). Het schaalt de dia‑inhoud om te passen en exporteert de enkele dia naar PDF.
#include <DOM/ISlideCollection.h>
#include <DOM/ISlideSize.h>
#include <DOM/Presentation.h>
#include <DOM/SlideSizeScaleType.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto slideWidth = 612;
auto slideHeight = 792;
auto presentation = MakeObject<Presentation>(u"SelectedSlides.pptx");
auto resizedPresentation = MakeObject<Presentation>();
resizedPresentation->get_SlideSize()->SetSize(slideWidth, slideHeight, SlideSizeScaleType::EnsureFit);
auto slide = presentation->get_Slide(0);
resizedPresentation->get_Slides()->InsertClone(0, slide);
// Remove the blank slide that the new presentation was created with.
resizedPresentation->get_Slides()->RemoveAt(1);
resizedPresentation->Save(u"PDF_with_custom_slide_size.pdf", SaveFormat::Pdf);
resizedPresentation->Dispose();
presentation->Dispose();
PowerPoint naar PDF converteren in notitie‑dia‑weergave
Het volgende voorbeeld exporteert een presentatie naar PDF, waarbij de spreker‑notities onder elke dia worden geplaatst. Gebruik een presentatie met spreker‑notities om het resultaat te zien.
#include <DOM/Presentation.h>
#include <Export/NotesCommentsLayoutingOptions.h>
#include <Export/NotesPositions.h>
#include <Export/PdfOptions.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto notesOptions = MakeObject<NotesCommentsLayoutingOptions>();
notesOptions->set_NotesPosition(NotesPositions::BottomFull);
auto pdfOptions = MakeObject<PdfOptions>();
pdfOptions->set_SlidesLayoutOptions(notesOptions);
auto presentation = MakeObject<Presentation>(u"NotesFile.pptx");
presentation->Save(u"PDF_with_notes.pdf", SaveFormat::Pdf, pdfOptions);
presentation->Dispose();
Toegankelijkheids‑ en nalevingsstandaarden voor PDF
Aspose.Slides stelt u in staat een conversieprocedure te gebruiken die voldoet aan de Web Content Accessibility Guidelines (WCAG). U kunt een PowerPoint‑document exporteren naar PDF met een van deze nalevingsstandaarden: PDF/A1a, PDF/A1b en PDF/UA.
Deze C++‑code demonstreert een PowerPoint‑naar‑PDF‑conversieproces dat meerdere PDF‑bestanden genereert op basis van verschillende nalevingsstandaarden:
#include <DOM/Presentation.h>
#include <Export/PdfCompliance.h>
#include <Export/PdfOptions.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
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 ondersteunt PDF‑conversie‑operaties, waardoor u PDF‑bestanden kunt omzetten naar veelgebruikte bestandsformaten. U kunt PDF naar HTML, PDF naar afbeelding, PDF naar JPG en PDF naar PNG conversies uitvoeren. Andere PDF‑conversie‑operaties naar gespecialiseerde formaten—PDF naar SVG, PDF naar TIFF en PDF naar XML—worden eveneens ondersteund.Opmerking: Bij het exporteren naar PDF/UA behandelt Aspose.Slides complexe grafische elementen zoals SmartArt, diagrammen en formules als één enkele figuur. Individuele pad‑elementen worden niet behouden als afzonderlijke inhoud en kunnen worden gemarkeerd als artefacten; alternatieve tekst wordt alleen voor de hele figuur verstrekt.
FAQ
Kan ik meerdere PowerPoint‑bestanden in één keer naar PDF converteren?
Ja, Aspose.Slides ondersteunt batch‑conversie van meerdere PPT‑ of PPTX‑bestanden naar PDF. U kunt uw bestanden itereren en het conversieproces programmatic aanroepen.
Is het mogelijk het geconverteerde PDF te beveiligen met een wachtwoord?
Ja. Gebruik de PdfOptions‑klasse om een wachtwoord in te stellen en toegangsrechten te definiëren tijdens het conversieproces.
Hoe neem ik verborgen dia’s op in de PDF?
Gebruik de set_ShowHiddenSlides‑methode in de PdfOptions‑klasse om verborgen dia’s in de resulterende PDF op te nemen.
Kan Aspose.Slides een hoge beeldkwaliteit in de PDF behouden?
Ja, u kunt de beeldkwaliteit regelen door methoden te gebruiken zoals set_JpegQuality en set_SufficientResolution in de PdfOptions‑klasse om hoge‑kwaliteit afbeeldingen in uw PDF te garanderen.
Ondersteunt Aspose.Slides de PDF/A‑nalevingsstandaarden?
Ja, Aspose.Slides stelt u in staat PDF‑bestanden te exporteren die voldoen aan diverse standaarden, waaronder PDF/A1a, PDF/A1b en PDF/UA, zodat uw documenten aan toegankelijkheids‑ en archiveringsvereisten voldoen.

