Konvertera PPT och PPTX till PDF i C++ [Avancerade funktioner inkluderade]
Översikt
Att konvertera PowerPoint-presentationer (PPT, PPTX, ODP osv.) till PDF-format i C++ erbjuder flera fördelar, inklusive kompatibilitet över olika enheter och bevarande av layouten och formateringen av din presentation. Denna guide visar hur du konverterar presentationer till PDF-dokument, använder olika alternativ för att kontrollera bildkvalitet, inkluderar dolda bilder, lösenordsskyddar PDF-filer, upptäcker teckensnittssubstitutioner, väljer specifika bilder för konvertering och tillämpar efterlevnadsstandarder på utdatafilern.
PowerPoint till PDF-konverteringar
Med Aspose.Slides kan du konvertera presentationer i följande format till PDF:
- PPT
- PPTX
- ODP
För att konvertera en presentation till PDF, skicka filnamnet som ett argument till klassen Presentation och spara sedan presentationen som en PDF med hjälp av metoden Spara. Klassen Presentation exponerar metoden Spara som vanligtvis används för att konvertera en presentation till PDF.
Note
Aspose.Slides för C++ sätter in sin API‑information och versionsnummer i utdatadokumenten. Till exempel, när en presentation konverteras till PDF, fyller Aspose.Slides i Application‑fältet med “Aspose.Slides” och PDF Producer‑fältet med ett värde i formatet “Aspose.Slides v XX.XX”. Obs att du inte kan instruera Aspose.Slides att ändra eller ta bort denna information från utdatadokumenten.Aspose.Slides låter dig konvertera:
- Hela presentationer till PDF
- Specifika bilder från en presentation till PDF
Aspose.Slides exporterar presentationer till PDF och säkerställer att de resulterande PDF‑filerna nära matchar de ursprungliga presentationerna. Element och attribut renderas exakt i konverteringen, inklusive:
- Bilder
- Textrutor och former
- Textformatering
- Styckeformatering
- Hyperlänkar
- Sidhuvuden och sidfötter
- Punkter
- Tabeller
Konvertera PowerPoint till PDF
Den standardiserade PowerPoint‑till‑PDF‑konverteringsprocessen använder standardalternativ. I detta fall försöker Aspose.Slides att konvertera den angivna presentationen till PDF med optimala inställningar på högsta kvalitetsnivåer.
Följande exempel laddar en presentation och sparar alla synliga bilder till PDF med standardexportinställningarna.
#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 erbjuder en gratis online PowerPoint till PDF‑konverterare som demonstrerar konverteringsprocessen från presentation till PDF. Du kan köra ett test med denna konverterare för en levande implementering av proceduren som beskrivs här.Konvertera PowerPoint till PDF med alternativ
Aspose.Slides tillhandahåller anpassade alternativ—egenskaper under klassen PdfOptions—som låter dig anpassa den resulterande PDF‑filen, låsa PDF‑filen med ett lösenord eller ange hur konverteringsprocessen ska gå till.
Konvertera PowerPoint till PDF med anpassade alternativ
Med anpassade konverteringsalternativ kan du definiera din föredragna kvalitet för rasterbilder, ange hur metafiler ska hanteras, ställa in en komprimeringsnivå för text, konfigurera DPI för bilder och mer.
Följande exempel exporterar en presentation till PDF 1.5 med JPEG‑kvalitet satt till 90, bildupplösning satt till 300 DPI, metafiler sparade som PNG och Flate‑textkomprimering.
#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();
Välj bildkompression automatiskt
När en presentation innehåller många fotografier eller skärmdumpar kan minskning av storleken på den exporterade PDF‑filen göra det enklare att e‑posta eller ladda ner. Anropa PdfOptions::set_BestImagesCompressionRatio med true för att automatiskt välja den mest lämpliga komprimeringsalgoritmen för varje bild under PDF‑export.
Följande exempel laddar en befintlig presentation, aktiverar automatisk bildkomprimeringsval och sparar den som ett PDF‑dokument. Alla andra PDF‑exportinställningar behåller sina standardvärden.
#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_BestImagesCompressionRatio(true);
auto presentation = MakeObject<Presentation>(u"image-heavy.pptx");
presentation->Save(u"image-heavy.pdf", SaveFormat::Pdf, pdfOptions);
presentation->Dispose();
Detta alternativ väljer en komprimeringsalgoritm för varje bild. Att sänka JPEG‑kvaliteten med set_JpegQuality minskar i stället JPEG‑bildkvaliteten, medan sänkning av upplösningen med set_SufficientResolution låter bilder downsamplas till en lägre upplösning, vilket kan minska detaljnivån. Aktivering av automatiskt komprimeringsval sänker inte dessa inställningar.
Val av bildkomprimeringsalgoritmer kräver extra bearbetningstid och minne. Storleksreduktionen beror på presentationens bilder och exportinställningar; en fast reduktion garanteras inte för varje presentation.
Bevara inbäddade OLE‑filer som PDF‑bilagor
Om en presentation innehåller en inbäddad Excel‑arbetsbok kan du vilja att PDF‑mottagare får åtkomst till arbetsbokens data samt kan visa bilderna. Anropa PdfOptions::set_IncludeOleData med true för att bevara inbäddade OLE‑filer som bilagor i den resulterande PDF‑filen.
Standardvärdet är false: OLE‑objektets förhandsgranskningsbild eller ikon renderas på PDF‑sidan, men den inbäddade filen inkluderas inte som en bilaga. Att sätta alternativet till true inkluderar dessutom filens data. Förhandsvisningen förblir en visuell representation; bilagan låter mottagare öppna eller spara den inbäddade filen separat. OLE‑objektet blir inte ett interaktivt Excel‑kalkylblad på PDF‑sidan.
Följande exempel laddar en presentation som redan innehåller en inbäddad Excel‑arbetsbok och exporterar den till PDF med arbetsboken bifogad.
#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();
För att kontrollera resultatet:
- Öppna den exporterade PDF‑filen i en visare som stödjer filbilagor, till exempel Adobe Acrobat Reader.
- Öppna visarens Bilagor‑panel och lokalisera den inbäddade arbetsboken.
- Spara bilagan och öppna den i Excel för att inspektera dess data, eller öppna den direkt om visaren tillåter det. Förhandsvisningen på PDF‑sidan är separat från bilagan.
Note
PDF/A‑standarderna inför begränsningar för bilagor: PDF/A‑1 förbjuder inbäddade filer, PDF/A‑2 tillåter endast PDF/A‑bilagor, och PDF/A‑3 tillåter andra filtyper, inklusive Excel‑arbetsböcker. Detta är krav från standarderna, inte begränsningar specifika för Aspose.Slides. Detta exempel använder standardinställningen för PDF‑efterlevnad och demonstrerar inte PDF/A‑export.Konvertera PowerPoint till PDF med dolda bilder
Om en presentation innehåller dolda bilder kan du använda metoden set_ShowHiddenSlides från klassen PdfOptions för att inkludera de dolda bilderna som sidor i den resulterande PDF‑filen.
Följande exempel exporterar en presentation till PDF, inklusive eventuella dolda bilder.
#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();
Konvertera PowerPoint till ett lösenordsskyddat PDF
Följande exempel exporterar en presentation till en PDF som kräver lösenordet password för att öppnas. Åtkomstbehörigheterna tillåter utskrift, inklusive utskrift av hög kvalitet.
#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();
Upptäck teckensnittssubstitutioner
Aspose.Slides tillhandahåller metoden set_WarningCallback under klassen PdfOptions, vilket möjliggör att upptäcka teckensnittssubstitutioner under konverteringsprocessen från presentation till PDF.
Följande exempel exporterar en presentation till PDF och skriver ut teckensnittssubstitutionsvarningar till konsolen. En varning skrivs endast ut när ett otillgängligt teckensnitt ersätts under 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
För mer information om teckensnittssubstitution, se artikeln Teckensnittssubstitution.Hantera teckensnitt utan en dedikerad fet typografi
En presentation kan applicera fet formatering på text även när dess teckensnitt saknar en dedikerad fet stil. Texten kan fortfarande visas som fet genom syntetisk fetning, vilket artificiellt förtjockar de vanliga glyferna. När den texten ser för tung ut eller på annat sätt skiljer sig från avsedd utseende i PDF, prova att anropa PdfOptions::set_RasterizeUnsupportedFontStyles med true. Detta alternativ renderar den påverkade texten som en bitmap under PDF‑export och kan förbättra dess utseende för vissa teckensnitt. Standardvärdet är false.
Exempelpresentationen innehåller två textrutor: en med normal text och en med fet formatering applicerad på samma teckensnitt, som saknar en dedikerad fet stil. Följande exempel laddar presentationen, aktiverar rasterisering av ej stödda teckensnittsstilar och exporterar den till 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();
Följande förhandsgranskningar visar den inaktiverade och den aktiverade utdata. I detta exempel har den feta texten tjockare streck när alternativet är inaktiverat. När alternativet är aktiverat är strecken lättare; den vanliga texten förblir oförändrad. Jämför resultaten innan du väljer inställningen för din presentation.
Alternativ inaktiverat (false, standard) |
Alternativ aktiverat (true) |
|---|---|
![]() |
![]() |
I detta exempel gör aktivering av alternativet att endast den feta texten blir en bitmap: den kan inte väljas, kopieras eller sökas som text utan OCR, och dess kanter framträder mjukare vid 800 % zoom. Den vanliga texten förblir sökbar. När alternativet är inaktiverat förblir båda strängarna text.
Detta alternativ rasteriserar text formaterad som fet när dess teckensnitt saknar en dedikerad fet stil. Teckensnittssubstitution väljer istället ett annat teckensnitt när det ursprungliga inte finns tillgängligt.
Konvertera valda bilder från PowerPoint till PDF
Följande exempel exporterar bilderna 1 och 3 från en presentation till PDF. Bildnumren i denna array är 1‑baserade, och inmatningspresentationen måste innehålla minst tre bilder.
#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();
Konvertera PowerPoint till PDF med anpassad bildstorlek
Följande exempel kopierar den första bilden från en presentation till en ny presentation med en bildstorlek på 612 × 792 punkter (8,5 × 11 tum). Det skalas bildinnehållet för att passa och exporterar den enda bilden till 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);
// Ta bort den tomma bilden som den nya presentationen skapades med.
resizedPresentation->get_Slides()->RemoveAt(1);
resizedPresentation->Save(u"PDF_with_custom_slide_size.pdf", SaveFormat::Pdf);
resizedPresentation->Dispose();
presentation->Dispose();
Konvertera PowerPoint till PDF i anteckningsvy
Följande exempel exporterar en presentation till PDF, där varje bilds talarnotering placeras under bilden. Använd en presentation som innehåller talarnoteringar för att se resultatet.
#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();
Tillgänglighet och efterlevnadsstandarder för PDF
Aspose.Slides låter dig använda en konverteringsprocedur som följer Riktlinjer för webbplatsens tillgänglighet (WCAG). Du kan exportera ett PowerPoint‑dokument till PDF med någon av dessa efterlevnadsstandarder: PDF/A1a, PDF/A1b och PDF/UA.
Denna C++‑kod demonstrerar en PowerPoint‑till‑PDF‑konverteringsprocess som producerar flera PDF‑filer baserade på olika efterlevnadsstandarder:
#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 stödjer PDF‑konverteringsoperationer, vilket låter dig konvertera PDF‑filer till populära filformat. Du kan utföra PDF till HTML, PDF till bild, PDF till JPG, och PDF till PNG konverteringar. Andra PDF‑konverteringsoperationer till specialiserade format—PDF till SVG, PDF till TIFF, och PDF till XML—stöds också.Obs: När du exporterar till PDF/UA behandlar Aspose.Slides komplex grafik såsom SmartArt, diagram och formler som en enda figur. Enskilda bansegment bevaras inte som separat innehåll och kan markeras som artefakter; alternativ text tillhandahålls endast för hela figuren.
FAQ
Kan jag konvertera flera PowerPoint‑filer till PDF i bulk?
Ja, Aspose.Slides stöder batch‑konvertering av flera PPT‑ eller PPTX‑filer till PDF. Du kan iterera igenom dina filer och programmässigt tillämpa konverteringsprocessen.
Är det möjligt att lösenordsskydda den konverterade PDF‑filen?
Ja. Använd klassen PdfOptions för att ange ett lösenord och definiera åtkomstbehörigheter under konverteringsprocessen.
Hur inkluderar jag dolda bilder i PDF‑filen?
Använd metoden set_ShowHiddenSlides i klassen PdfOptions för att inkludera dolda bilder i den resulterande PDF‑filen.
Kan Aspose.Slides bibehålla hög bildkvalitet i PDF‑filen?
Ja, du kan kontrollera bildkvaliteten genom att använda metoder såsom set_JpegQuality och set_SufficientResolution i klassen PdfOptions för att säkerställa högkvalitativa bilder i din PDF.
Stöder Aspose.Slides PDF/A‑efterlevnadsstandarder?
Ja, Aspose.Slides låter dig exportera PDF‑filer som följer olika standarder, inklusive PDF/A1a, PDF/A1b och PDF/UA, vilket säkerställer att dina dokument uppfyller krav på tillgänglighet och arkivering.

