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++ ger flera fördelar, inklusive kompatibilitet över olika enheter och bevarande av layout och formatering av din presentation. Denna guide visar hur du konverterar presentationer till PDF-dokument, använder olika alternativ för att kontrollera bildkvalitet, inkluderar dolda bildspel, lösenordsskyddar PDF-filer, upptäcker typsnittssubstitutioner, väljer specifika bildspel för konvertering och tillämpar efterlevnadsstandarder på utdatat dokument.

PowerPoint till PDF-konverteringar

  • 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 Save. Klassen Presentation exponerar metoden Save som vanligtvis används för att konvertera en presentation till PDF.

Aspose.Slides låter dig konvertera:

  • Hela presentationer till PDF
  • Specifika bildspel från en presentation till PDF

Aspose.Slides exporterar presentationer till PDF och säkerställer att de resulterande PDF‑erna nära matchar originalpresentationerna. Element och attribut återges 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 konvertera den angivna presentationen till PDF med optimala inställningar på högsta kvalitetsnivåer.

Följande exempel läser in en presentation och sparar alla synliga bildspel 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();

Konvertera PowerPoint till PDF med alternativ

Aspose.Slides tillhandahåller anpassade alternativ—egenskaper under klassen PdfOptions—som låter dig anpassa den resulterande PDF‑en, låsa PDF‑en med ett lösenord eller ange hur konverteringsprocessen ska fortsätta.

Konvertera PowerPoint till PDF med anpassade alternativ

Genom att använda anpassade konverteringsalternativ kan du definiera din föredragna kvalitetsinställning 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();

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 se bildspelen. Anropa PdfOptions::set_IncludeOleData med true för att bevara inbäddade OLE‑filer som bilagor i den resulterande PDF‑en.

Standardvärdet är false: OLE‑objektets förhandsgranskningsbild eller ikon återges på PDF‑sidan, men den inbäddade filen inkluderas inte som en bilaga. Genom att sätta alternativet till true inkluderas dessutom filens data. Förhandsgranskningen 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 läser in 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:

  1. Öppna den exporterade PDF‑en i en visare som stödjer filbilagor, som Adobe Acrobat Reader.
  2. Öppna visarens Attachments‑panel och lokalisera den inbäddade arbetsboken.
  3. Spara bilagan och öppna den i Excel för att inspektera dess data, eller öppna den direkt om visaren tillåter det. Förhandsgranskningen på PDF‑sidan är separat från bilagan.

Konvertera PowerPoint till PDF med dolda bildspel

Om en presentation innehåller dolda bildspel kan du använda metoden set_ShowHiddenSlides från klassen PdfOptions för att inkludera de dolda bildspelen som sidor i den resulterande PDF‑en.

Följande exempel exporterar en presentation till PDF, inklusive eventuella dolda bildspel.

#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 ett PDF som kräver lösenordet password för att öppnas. Åtkomstbehörigheterna tillåter utskrift, inklusive högkvalitativ utskrift.

#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äcka typsnittssubstitutioner

Aspose.Slides tillhandahåller metoden set_WarningCallback under klassen PdfOptions, vilket möjliggör att upptäcka typsnittssubstitutioner under presentation‑till‑PDF‑konverteringsprocessen.

Följande exempel exporterar en presentation till PDF och skriver ut varningar om typsnittssubstitutioner till konsolen. En varning skrivas bara ut när ett otillgängligt typsnitt 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();

Hantera typsnitt utan en dedikerad fet stil

En presentation kan tillämpa fet formatering på text även när dess typsnitt saknar en dedikerad fet stil. Texten kan ändå visas fet genom syntetisk fetstil, som artificiellt tjocknar de vanliga glyferna. När den texten ser för tung ut eller på annat sätt avviker från den avsedda utseendet 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 typsnitt. Standardvärdet är false.

Exempelpresentationen innehåller två textrutor: en med vanlig text och en med fet formatering tillämpad på samma typsnitt, som saknar en dedikerad fet stil. Följande exempel läser in presentationen, aktiverar rasterisering av icke‑stödda typsnittsstilar 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 utskriften med alternativet inaktiverat och med alternativet aktiverat. I detta exempel har den feta texten tjockare linjer när alternativet är inaktiverat. När alternativet är aktiverat är linjerna lättare; den vanliga texten är oförändrad. Jämför resultaten innan du väljer inställningen för din presentation.

Alternativ inaktiverat (false, standard) Alternativ aktiverat (true)
PDF med rasterisering av ej‑stödd teckensnittsstil inaktiverad PDF med rasterisering av ej‑stödd teckensnittsstil aktiverad

I detta exempel gör aktivering av alternativet att endast den feta texten omvandlas till 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 som är formaterad som fet när dess typsnitt saknar en dedikerad fet stil. Typsnittssubstitution väljer istället ett annat typsnitt när det ursprungliga är otillgängligt.

Konvertera utvalda bildspel från PowerPoint till PDF

Följande exempel exporterar bildspel 1 och 3 från en presentation till PDF. Bildspelsnummer i denna array är 1‑baserade, och inmatningspresentationen måste innehålla minst tre bildspel.

#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 bildspelen från en presentation till en ny presentation med en bildstorlek på 612 × 792 punkter (8,5 × 11 tum). Det skalar bildspelsinnehållet för att passa och exporterar den enda bildspelen 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);

// 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();

Konvertera PowerPoint till PDF i anteckningsvy för bildspel

Följande exempel exporterar en presentation till PDF och placerar varje bildspels talarmanus under bildspelen. Använd en presentation som innehåller talarmanus 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 Web Content Accessibility Guidelines (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‑er 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();

Obs: När du exporterar till PDF/UA behandlar Aspose.Slides komplex grafik såsom SmartArt, diagram och formler som en enda figur. Enskilda banelement 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 på en gång?

Ja, Aspose.Slides stödjer batch‑konvertering av flera PPT‑ eller PPTX‑filer till PDF. Du kan iterera genom dina filer och programatiskt tillämpa konverteringsprocessen.

Är det möjligt att lösenordsskydda den konverterade PDF‑en?

Ja. Använd klassen PdfOptions för att ange ett lösenord och definiera åtkomstbehörigheter under konverteringsprocessen.

Hur inkluderar jag dolda bildspel i PDF‑en?

Använd metoden set_ShowHiddenSlides i klassen PdfOptions för att inkludera de dolda bildspelen i den resulterande PDF‑en.

Kan Aspose.Slides behålla hög bildkvalitet i PDF‑en?

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‑er 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.

Ytterligare resurser