Konvertera Excel till PDF med C++

Konvertering av Excelarbetsbok till PDF

PDF-filer används i stor utsträckning för att utbyta dokument mellan organisationer, myndigheter och individer. Det är ett standarddokumentformat, och programvaruutvecklare ombeds ofta att hitta ett sätt att konvertera Microsoft Excel-filer till PDF-dokument.

Aspose.Cells stöder konvertering av Excel-filer till PDF och bibehåller hög visuell identitet vid konverteringen.

Direkt konvertering

Aspose.Cells for C++ stöder konvertering från kalkylblad till PDF oberoende av annan programvara. Spara enkelt en Excel-fil till PDF med Workbook-klassens Save-metod. Save-metoden ger enum-medlemmen SaveFormat.Pdf, som konverterar de inbyggda Excel-filerna till PDF-format.

Följ stegen nedan för att direkt konvertera Excel-kalkylbladen till PDF-format:

  1. Skapa ett objekt av Workbook-klassen genom att anropa dess tomma konstruktor.
  2. Du kan öppna/ladda en befintlig mallfil eller hoppa över detta steg om du skapar arbetsboken från grunden.
  3. Utför något arbete (insätt data, tillämpa formatering, sätt in formler, infoga bilder eller andra ritobjekt, och så vidare) på kalkbladet med Aspose.Cells API:er.
  4. När kalkbladskoden är klar, anropa Workbook-klassens Save-metod för att spara kalkbladet.

Filformatet bör vara PDF, så välj Pdf (ett fördefinierat värde) från SaveFormat-uppräkningen för att generera det slutgiltiga PDF-dokumentet.

#include <iostream>
#include "Aspose.Cells.h"

using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Path of input Excel file
    U16String inputFilePath = srcDir + u"Book1.xls";

    // Path of output PDF file
    U16String outputFilePath = outDir + u"output.pdf";

    // Create workbook
    Workbook workbook(inputFilePath);

    // Save the document in PDF format
    workbook.Save(outputFilePath, SaveFormat::Pdf);

    std::cout << "Document saved successfully in PDF format!" << std::endl;

    Aspose::Cells::Cleanup();
}

Avancerad konvertering

Du kan också välja att använda PdfSaveOptions-klassen för att ställa in olika attribut för konverteringen. Att ställa in olika egenskaper för PdfSaveOptions-klassen ger dig kontroll över utskrifts-, teckensnitts-, säkerhets- och komprimeringsinställningar för utdata PDF.

Den viktigaste egenskapen är GetCompliance(), som gör att du kan ställa in PDF-standardens efterlevnandenivå. För närvarande kan du spara till PDF 1.4, PDF 1.5, PDF 1.6, PDF 1.7, PDF/A-1a, PDF/A-1b, PDF/A-2a, PDF/A-2b, PDF/A-2u, PDF/A-3a, PDF/A-2ab och PDF/A-3u-format. Observera att med PDF/A-formatet är utdatafilen större än en vanlig PDF-fil.

Spara arbetsboken som PDF/A-kompatibla filer

Kodsnutten nedan demonstrerar hur man använder PdfSaveOptions-klassen för att spara Excel-filer till PDF/A-kompatibla PDF-format.

#include <iostream>
#include "Aspose.Cells.h"

using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Instantiate new workbook
    Workbook workbook;

    // Insert a value into the A1 cell in the first worksheet
    workbook.GetWorksheets().Get(0).GetCells().Get(0, 0).PutValue(U16String(u"Testing PDF/A"));

    // Define PdfSaveOptions
    PdfSaveOptions pdfSaveOptions;

    // Set the compliance type
    pdfSaveOptions.SetCompliance(PdfCompliance::PdfA1b);

    // Save the file
    workbook.Save(outDir + u"output.pdf", pdfSaveOptions);

    std::cout << "PDF file created successfully with PDF/A-1b compliance!" << std::endl;

    Aspose::Cells::Cleanup();
}

Ange PDF-skapandetid

Med PdfSaveOptions-klassen kan du hämta eller ange tiden för PDF-skapandet. Följande kod visar användningen av PdfSaveOptions.GetCreatedTime()-egenskapen för att sätta skapandetiden för PDF-filen.

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Path of input excel file
    U16String inputPath = srcDir + u"Book1.xlsx";

    // Load excel file containing charts
    Workbook workbook(inputPath);

    // Create an instance of PdfSaveOptions
    PdfSaveOptions options;
	options.SetCreatedTime(Date{ 2025,01,01 });

    // Save the workbook to PDF format while passing the object of PdfSaveOptions
    workbook.Save(srcDir + u"output.pdf", options);

    std::cout << "Workbook saved to PDF successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}

Ange alternativet för att kopiera innehållet för tillgänglighet

Med PdfSaveOptions-klassen kan du hämta eller ange PDF GetAccessibilityExtractContent()-alternativet för att kontrollera innehållsåtkomst i den konverterade PDF-filen.

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Path of input excel file
    U16String inputPath = srcDir + u"BookWithSomeData.xlsx";

    // Load excel file containing some data
    Workbook workbook(inputPath);

    // Create an instance of PdfSaveOptions
    PdfSaveOptions pdfSaveOpt;

    // Create an instance of PdfSecurityOptions
    PdfSecurityOptions securityOptions;

    // Set AccessibilityExtractContent to false
    securityOptions.SetAccessibilityExtractContent(false);

    // Set the security option in the PdfSaveOptions
    pdfSaveOpt.SetSecurityOptions(securityOptions);

    // Save the workbook to PDF format while passing the object of PdfSaveOptions
    workbook.Save(outDir + u"outFile.pdf", pdfSaveOpt);

    std::cout << "Workbook saved to PDF format successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}

Exportera anpassade egenskaper till PDF

Med PdfSaveOptions-klassen kan du exportera anpassade egenskaper i källarbetsboken till PDF. PdfCustomPropertiesExport-uppräkningen tillhandahålls för att specificera hur egenskaper exporteras. Dessa egenskaper kan observeras i Adobe Acrobat Reader genom att klicka på Arkiv och sedan Egenskaper, som visas på bilden nedan. Mallfilen “sourceWithCustProps.xlsx” kan laddas ner här för testning, och utdata PDF-filen “outSourceWithCustProps” är tillgänglig här för analys.

todo:image_alt_text

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Rendering;

int main()
{
    Aspose::Cells::Startup();

    // Load excel file containing custom properties
    U16String inputFilePath(u"sourceWithCustProps.xlsx");
    Workbook workbook(inputFilePath);

    // Create an instance of PdfSaveOptions
    PdfSaveOptions pdfSaveOptions;

    // Set CustomPropertiesExport property to PdfCustomPropertiesExport::Standard
    pdfSaveOptions.SetCustomPropertiesExport(PdfCustomPropertiesExport::Standard);

    // Save the workbook to PDF format while passing the object of PdfSaveOptions
    U16String outputFilePath(u"outSourceWithCustProps.pdf");
    workbook.Save(outputFilePath, pdfSaveOptions);

    Aspose::Cells::Cleanup();
}

Konverteringsattribut

Vi arbetar för att förbättra konverteringsfunktionerna vid varje ny version. Aspose.Cells' konvertning av Excel till PDF har fortfarande ett par begränsningar. MapChart stöds inte vid konvertering till PDF-format. Dessutom är några ritobjekt inte väl stödda.

Följande tabel listar alla funktioner som fullt ut eller delvis stöds vid export till PDF med Aspose.Cells. Denna tabell är inte slutgiltig och täcker inte alla kalkbladsattribut, men identifierar de funktioner som inte stöds eller endast delvis stöds vid konvertering till PDF.

Dokumentelement Attribut Stöds Noteringar
Justering Ja
Bakgrundsinställningar Ja
Ram Färg Ja
Ram Linjestil Ja
Ram Linjebredd Ja
Cell Data Ja
Kommentarer Ja
Villkorlig formatering Ja
Dokumentegenskaper Ja
Ritobjekt Delvis Skuggor och 3D-effekter för ritobjekt stöds inte väl; WordArt och SmartArt stöds delvis.
Teckensnitt Storlek Ja
Teckensnitt Färg Ja
Teckensnitt Stil Ja
Teckensnitt Understrykning Ja
Teckensnitt Effekter Ja
Bilder Ja
Hyperlänk Ja
Diagram Delvis MapChart stöds inte.
Sammanfogade celler Ja
Sidbrytning Ja
Sidlayout Sidhuvud/Fot Ja
Sidlayout Marginal Ja
Sidlayout Sidorientering Ja
Sidlayout Sidstorlek Ja
Sidlayout Utskriftsområde Ja
Sidlayout Utskriftstitlar Ja
Sidlayout Skalning Ja
Radhöjd/Kolumnbredd Ja
RTL (Höger till Vänster) Språk Ja

Fortsatta ämnen