Converti Excel in PDF con C++

Conversione di un Workbook Excel in PDF

I file PDF sono ampiamente utilizzati per lo scambio di documenti tra organizzazioni, settori governativi e individui. È un formato di documento standard e gli sviluppatori di software spesso devono trovare un modo per convertire i file Microsoft Excel in documenti PDF.

Aspose.Cells supporta la conversione di file Excel in PDF e mantiene un’elevata fedeltà visiva nella conversione.

Conversione Diretta

Aspose.Cells for C++ supporta la conversione da fogli di calcolo a PDF indipendentemente da altri software. Basta salvare un file Excel in PDF utilizzando il metodo Save della classe Workbook. Il metodo Save fornisce il membro di enumerazione SaveFormat.Pdf che converte i file Excel nativi in formato PDF.

Seguire i seguenti passi per convertire direttamente i fogli di calcolo Excel in formato PDF:

  1. Crea un’istanza di un oggetto della classe Workbook chiamando il suo costruttore vuoto.
  2. È possibile aprire/caricare un file di modello esistente o saltare questo passo se si sta creando il workbook da zero.
  3. Esegui qualsiasi operazione (input dati, applica formattazioni, imposta formule, inserisci immagini o altri oggetti di disegno, e così via) sul foglio di calcolo utilizzando le API di Aspose.Cells.
  4. Quando il codice del foglio di calcolo è completo, chiama il metodo Save della classe Workbook per salvare il foglio di calcolo.

Il formato del file deve essere PDF, quindi seleziona Pdf (un valore predefinito) dall’enumerazione SaveFormat per generare il documento PDF finale.

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

Conversione Avanzata

Puoi anche optare per usare la classe PdfSaveOptions per impostare attributi differenti per la conversione. Impostare proprietà diverse della classe PdfSaveOptions ti dà il controllo su impostazioni di stampa, carattere, sicurezza e compressione per il PDF di output.

La proprietà più importante è GetCompliance(), che consente di impostare il livello di conformità agli standard PDF. Attualmente, puoi salvare in formati 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 e PDF/A-3u. Nota che con il formato PDF/A, si ottiene una dimensione del file di output maggiore rispetto a un PDF normale.

Salvataggio del foglio di lavoro in file PDF/A compilati

Il frammento di codice sottostante mostra come usare la classe PdfSaveOptions per salvare i file Excel in formato PDF/A conforme allo standard PDF.

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

Imposta l’ora di creazione del PDF

Con la classe PdfSaveOptions, puoi ottenere o impostare l’orario di creazione del PDF. Il seguente codice dimostra l’uso della proprietà PdfSaveOptions.GetCreatedTime() per impostare l’orario di creazione del file PDF.

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

Imposta l’opzione ContentCopyForAccessibility

Con la classe PdfSaveOptions, puoi ottenere o impostare l’opzione GetAccessibilityExtractContent() del PDF per controllare l’accesso ai contenuti nel PDF convertito.

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

Esporta le proprietà personalizzate in PDF

Con la classe PdfSaveOptions, puoi esportare le proprietà personalizzate del workbook di origine nel PDF. È fornito l’enumeratore PdfCustomPropertiesExport per specificare il metodo di esportazione delle proprietà. Queste proprietà possono essere osservate in Adobe Acrobat Reader cliccando su File e poi su Proprietà come mostrato nell’immagine seguente. Il file modello “sourceWithCustProps.xlsx” può essere scaricato qui per test, e il file PDF di output “outSourceWithCustProps” è disponibile qui per analisi.

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

Attributi di Conversione

Lavoriamo per migliorare le funzionalità di conversione con ogni nuova versione. La conversione da Excel a PDF di Aspose.Cells presenta ancora alcune limitazioni. MapChart non è supportato nella conversione in PDF. Inoltre, alcuni oggetti di disegno non sono molto supportati.

La tabella che segue elenca tutte le funzionalità completamente o parzialmente supportate nell’esportazione in PDF utilizzando Aspose.Cells. Questa tabella non è definitiva e non copre tutte le caratteristiche del foglio di calcolo, ma identifica quelle funzionalità non supportate o parzialmente supportate nella conversione in PDF.

Elemento del documento Attributo Supportato Note
Allineamento
Impostazioni di sfondo
Bordo Colore
Bordo Stile della linea
Bordo Spessore della linea
Dati Cella
Commenti
Formattazione Condizionale
Proprietà del Documento
Oggetti di Disegno Parzialmente Gli effetti Shadow e 3D per gli oggetti di disegno non sono supportati bene; WordArt e SmartArt sono parzialmente supportati.
Font Dimensione
Font Colore
Font Stile
Font Sottolineatura
Font Effetti
Immagini
Collegamento ipertestuale
Grafici Parzialmente MapChart non supportato.
Celle unite
Interruzione di pagina
Impostazione pagina Intestazione/Piede
Impostazione pagina Margini
Impostazione pagina Orientamento della pagina
Impostazione pagina Dimensione pagina
Impostazione pagina Area di stampa
Impostazione pagina Titoli di stampa
Impostazione pagina Scala
Altezza riga/Larghezza colonna
Lingua RTL (Da destra a sinistra)

Argomenti avanzati