Excel nach PDF mit C++ konvertieren

Konvertierung der Excel-Arbeitsmappe in PDF

PDF-Dateien werden häufig verwendet, um Dokumente zwischen Organisationen, Regierungsbereichen und Einzelpersonen auszutauschen. Es ist ein standardisiertes Dokumentformat und Softwareentwickler werden oft gefragt, eine Möglichkeit zu finden, Microsoft Excel-Dateien in PDF-Dokumente umzuwandeln.

Aspose.Cells unterstützt die Konvertierung von Excel-Dateien in PDF und gewährleistet dabei eine hohe visuelle Genauigkeit bei der Konvertierung.

Direkte Konvertierung

Aspose.Cells for C++ unterstützt die Konvertierung von Tabellen in PDF unabhängig von anderer Software. Speichern Sie eine Excel-Datei einfach mit der Workbook-Klasse und der Save-Methode als PDF. Die Save-Methode bietet das SaveFormat.Pdf-Aufzählungsmitglied, das die nativen Excel-Dateien in PDF-Format umwandelt.

Befolgen Sie die folgenden Schritte, um die Excel-Tabellenkalkulationen direkt in das PDF-Format zu konvertieren:

  1. Erstellen eines Objekts der Workbook-Klasse durch Aufrufen ihres Standardkonstruktors.
  2. Sie können eine vorhandene Vorlagendatei öffnen/laden oder diesen Schritt überspringen, wenn Sie die Arbeitsmappe von Grund auf erstellen.
  3. Führen Sie alle Arbeiten aus (Daten eingeben, Formatierungen anwenden, Formeln einstellen, Bilder oder andere Zeichenobjekte einfügen usw.) auf dem Arbeitsblatt mit den APIs von Aspose.Cells durch.
  4. Wenn der Code für das Arbeitsblatt fertig ist, rufen Sie die Workbook-Save-Methode der Klasse Workbook auf, um das Arbeitsblatt zu speichern.

Das Dateiformat sollte PDF sein, wählen Sie also Pdf (einen vordefinierten Wert) aus der SaveFormat-Aufzählung, um das endgültige PDF-Dokument zu erstellen.

#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();
}

Erweiterte Konvertierung

Sie können auch die PdfSaveOptions-Klasse verwenden, um verschiedene Attribute für die Konvertierung festzulegen. Das Festlegen verschiedener Eigenschaften der PdfSaveOptions-Klasse gibt Ihnen die Kontrolle über Druck-, Schrift-, Sicherheits- und Komprimierungseinstellungen für das Ausgabe-PDF.

Das wichtigste Property ist GetCompliance(), mit dem Sie das Konformitätsniveau der PDF-Standards festlegen können. Derzeit können Sie auf 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 und PDF/A-3u speichern. Beachten Sie, dass bei Verwendung des PDF/A-Formats die Ausgabedatei größer ist als eine reguläre PDF-Datei.

Speichern der Arbeitsmappe als PDF/A-kompatible Dateien

Der untenstehende Codeausschnitt zeigt, wie die PdfSaveOptions-Klasse verwendet wird, um Excel-Dateien im PDF/A-konformen PDF-Format zu speichern.

#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();
}

Legen Sie die Erstellungszeit des PDF fest

Mit der PdfSaveOptions-Klasse können Sie die Erstellungszeit des PDFs abrufen oder festlegen. Das folgende Beispiel demonstriert die Verwendung der PdfSaveOptions.GetCreatedTime()-Eigenschaft, um die Erstellungszeit der PDF-Datei festzulegen.

#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();
}

Option ContentCopyForAccessibility festlegen

Mit der PdfSaveOptions-Klasse können Sie die GetAccessibilityExtractContent()-Option des PDFs abrufen oder festlegen, um den Zugriff auf den Inhalt im konvertierten PDF zu steuern.

#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();
}

Benutzerdefinierte Eigenschaften in PDF exportieren

Mit der PdfSaveOptions-Klasse können Sie die benutzerdefinierten Eigenschaften in der Quellarbeitsmappe in das PDF exportieren. Der PdfCustomPropertiesExport-Enumerator wird bereitgestellt, um die Art der Exporte zu spezifizieren. Diese Eigenschaften sind in Adobe Acrobat Reader sichtbar, wenn Sie auf Datei klicken und dann Eigenschaften auswählen, wie im folgenden Bild gezeigt. Die Vorlage “sourceWithCustProps.xlsx” kann hier zum Testen heruntergeladen werden, und die Ausgabedatei “outSourceWithCustProps” steht hier zur Analyse bereit.

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

Konvertierungseigenschaften

Wir arbeiten daran, die Konvertierungsfunktionen mit jeder neuen Version zu verbessern. Die Excel-zu-PDF-Konvertierung von Aspose.Cells weist noch einige Einschränkungen auf. MapChart wird beim Konvertieren in PDF-Format nicht unterstützt. Außerdem sind einige Zeichenobjekte nicht gut unterstützt.

Die folgende Tabelle listet alle Funktionen auf, die beim Export in PDF mit Aspose.Cells vollständig oder teilweise unterstützt werden. Diese Tabelle ist nicht endgültig und deckt nicht alle Tabellenblattattribute ab, aber sie zeigt Funktionen, die nicht unterstützt werden oder nur teilweise unterstützt werden bei der Konvertierung in PDF.

Dokumentelement Attribut Unterstützt Hinweise
Ausrichtung Ja
Hintergrund-Einstellungen Ja
Rahmen Farbe Ja
Rahmen Linienstil Ja
Rahmen Linienstärke Ja
Zellendaten Ja
Kommentare Ja
Bedingte Formatierung Ja
Dokumenteigenschaften Ja
Zeichenobjekte Teilweise Schatten- und 3D-Effekte für Zeichenobjekte werden nicht gut unterstützt; WordArt und SmartArt werden teilweise unterstützt.
Schriftart Größe Ja
Schriftart Farbe Ja
Schriftart Stil Ja
Schriftart Unterstreichung Ja
Schriftart Effekte Ja
Bilder Ja
Hyperlink Ja
Diagramme Teilweise MapChart wird nicht unterstützt.
Zellen verbinden Ja
Seitenumbruch Ja
Seitenlayout Kopf-/Fußzeile Ja
Seitenlayout Ränder Ja
Seitenlayout Seitenorientierung Ja
Seiteneinrichtung Seitengröße Ja
Seiteneinrichtung Druckbereich Ja
Seiteneinrichtung Drucktitel Ja
Seiteneinrichtung Skalierung Ja
Zeilenhöhe/Spaltenbreite Ja
RTL (Rechts nach Links) Sprache Ja

Erweiterte Themen