Convertir Excel a PDF con C++
Conversión de libro de Excel a PDF
Los archivos PDF son ampliamente utilizados para intercambiar documentos entre organizaciones, sectores gubernamentales y particulares. Es un formato estándar de documento, y a menudo se pide a los desarrolladores de software que encuentren una forma de convertir archivos de Microsoft Excel en documentos PDF.
Aspose.Cells admite la conversión de archivos de Excel a PDF y mantiene una alta fidelidad visual en la conversión.
Aspose.Cells for C++ escribe directamente la información sobre la API y el Número de Versión en los documentos de salida. Por ejemplo, al renderizar un documento a PDF, Aspose.Cells for C++ llena el campo Productor de PDF con un valor, por ejemplo, ‘Aspose.Cells v23.2’.
Ten en cuenta que puedes cambiar esta información en los documentos de salida usando la propiedad PdfSaveOptions.GetProducer().
Conversión Directa
Aspose.Cells for C++ admite la conversión de hojas de cálculo a PDF de forma independiente de otro software. Simplemente guarde un archivo de Excel como PDF usando el método Save de la clase Workbook. El método Save proporciona el miembro de enumeración SaveFormat.Pdf que convierte los archivos nativos de Excel al formato PDF.
Siga los siguientes pasos para convertir directamente las hojas de cálculo de Excel al formato PDF:
- Instancia un objeto de la clase Workbook llamando a su constructor vacío.
- Puede abrir/cargar un archivo de plantilla existente o saltarse este paso si está creando el libro de trabajo desde cero.
- Realice cualquier trabajo (introducción de datos, aplicar formato, establecer fórmulas, insertar imágenes u objetos de dibujo, etc.) en la hoja de cálculo usando las API de Aspose.Cells.
- Cuando el código de la hoja de cálculo esté completo, llame al método Save de la clase Workbook para guardar la hoja de cálculo.
El formato de archivo debe ser PDF, así que seleccione Pdf (un valor predefinido) de la enumeración SaveFormat para generar el documento PDF final.
#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();
}
Conversión Avanzada
También puede optar por usar la clase PdfSaveOptions para establecer diferentes atributos para la conversión. La configuración de diferentes propiedades de la clase PdfSaveOptions le da control sobre la impresión, la fuente, la seguridad y la compresión del PDF de salida.
La propiedad más importante es GetCompliance(), que le permite establecer el nivel de cumplimiento de los estándares PDF. Actualmente, puede guardar en formatos 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, y PDF/A-3u. Tenga en cuenta que con el formato PDF/A, el tamaño del archivo de salida es mayor que el tamaño de un archivo PDF regular.
Guardando el Libro de Trabajo en Archivos PDF/A Compilados
El fragmento de código proporcionado a continuación demuestra cómo usar la clase PdfSaveOptions para guardar archivos de Excel en formato PDF compatible con PDF/A.
#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();
}
Establecer la Hora de Creación del PDF
Con la clase PdfSaveOptions, puede obtener o establecer el tiempo de creación del PDF. El siguiente código demuestra el uso de la propiedad PdfSaveOptions.GetCreatedTime() para establecer el tiempo de creación del archivo 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();
}
Establecer la opción ContentCopyForAccessibility
Con la clase PdfSaveOptions, puede obtener o establecer la opción GetAccessibilityExtractContent() del PDF para controlar el acceso al contenido en el PDF convertido.
#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();
}
Exportar Propiedades Personalizadas a PDF
Con la clase PdfSaveOptions, puede exportar las propiedades personalizadas en el libro de origen al PDF. Se proporciona el enumerador PdfCustomPropertiesExport para especificar la forma en que se exportan las propiedades. Estas propiedades se pueden observar en Adobe Acrobat Reader haciendo clic en Archivo y luego en la opción Propiedades como se muestra en la siguiente imagen. El archivo de plantilla “sourceWithCustProps.xlsx” se puede descargar aquí para prueba, y el archivo PDF de salida “outSourceWithCustProps” está disponible aquí para análisis.
#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();
}
Atributos de Conversión
Trabajamos para mejorar las funciones de conversión con cada nueva versión. La conversión de Excel a PDF de Aspose.Cells aún tiene un par de limitaciones. MapChart no es compatible cuando se convierte al formato PDF. Además, algunos objetos de dibujo no son soportados bien.
La tabla que sigue enumera todas las funciones que son totalmente o parcialmente soportadas al exportar a PDF usando Aspose.Cells. Esta tabla no es definitiva y no cubre todos los atributos de la hoja de cálculo, pero identifica esas funciones que no son soportadas o que solo son parcialmente soportadas para la conversión a PDF.
Elemento del Documento | Atributo | Soportado | Notas |
---|---|---|---|
Alineación | Sí | ||
Configuración de fondo | Sí | ||
Borde | Color | Sí | |
Borde | Estilo de línea | Sí | |
Borde | Ancho de línea | Sí | |
Datos de celda | Sí | ||
Comentarios | Sí | ||
Formato condicional | Sí | ||
Propiedades del Documento | Sí | ||
Objetos de dibujo | Parcialmente | Los efectos de sombra y 3D en los objetos de dibujo no son soportados bien; WordArt y SmartArt son soportados parcialmente. | |
Fuente | Tamaño | Sí | |
Fuente | Color | Sí | |
Fuente | Estilo | Sí | |
Fuente | Subrayado | Sí | |
Fuente | Efectos | Sí | |
Imágenes | Sí | ||
Hipervínculo | Sí | ||
Gráficos | Parcialmente | MapChart no es compatible. | |
Celdas combinadas | Sí | ||
Salto de página | Sí | ||
Configuración de página | Encabezado/Pie de página | Sí | |
Configuración de página | Márgenes | Sí | |
Configuración de página | Orientación de página | Sí | |
Configuración de página | Tamaño de página | Sí | |
Configuración de página | Área de impresión | Sí | |
Configuración de página | Títulos de impresión | Sí | |
Configuración de página | Escalado | Sí | |
Altura de fila / Ancho de columna | Sí | ||
Lengua RTL (Derecha a Izquierda) | Sí |
Temas avanzados
- Agregar Marcadores de PDF con Destinos Nombrados
- Cambie la fuente solo en los caracteres Unicode específicos al guardar en PDF
- Convertir Archivo XLSX a Formato PDF
- Convertir archivo de Excel a formato PDF compatible con PDFA-1a
- Convertir archivo XLS con imágenes o gráficos a PDF
- Crear entrada de marcador de PDF para hoja de gráfico
- Ajustar todas las columnas de la hoja de cálculo en una sola página de PDF
- Obtenga DrawObject y Bound al renderizar a PDF utilizando la clase DrawObjectEventHandler
- Obtenga advertencias por sustitución de fuentes al renderizar el archivo de Excel
- Ignorar errores al renderizar Excel a PDF
- Limitar el número de páginas generadas - Conversión de Excel a PDF
- Imprimir comentarios al guardar en PDF
- Renderizar complementos de Office al convertir Excel a PDF
- Renderizar una página de PDF por hoja de cálculo de Excel - Conversión de Excel a PDF
- Renderizar caracteres suplementarios Unicode en el PDF de salida por Aspose.Cells
- Muestrear imágenes agregadas - Conversión de Excel a PDF
- Guardar cada hoja de cálculo en un archivo PDF diferente
- Guardar Excel en PDF con tamaño estándar o mínimo
- Guardar hojas de cálculo especificadas en PDF
- Documentos PDF seguros
- Especificar cómo cruzar cadenas en el PDF de salida e imagen