Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
La posibilidad de convertir archivos o contenidos HTML al formato de páginas PDF es una función muy valiosa en muchas aplicaciones. En C++, es una tarea bastante tediosa crear una aplicación desde cero para generar archivos en formato HTML a PDF. Así que en este artículo, exploraremos cómo convertir HTML a PDF en C++ utilizando la biblioteca wkhtmltopdf.
wkhtmltopdf es una herramienta de línea de comandos de código abierto que transforma sin problemas páginas HTML de texto plano en documentos PDF de alta calidad. Aprovechando sus funcionalidades en programas C++, podemos convertir fácilmente el contenido de cadenas HTML a formato PDF. Analicemos paso a paso el proceso de conversión de páginas HTML a PDF en C++ utilizando la biblioteca wkhtmltopdf.
Para crear un conversor de archivos HTML a PDF en C++, debemos comprobar que se cumplen los siguientes requisitos:
Un compilador de C++ como GCC o Clang instalado en su sistema.
biblioteca wkhtmltopdf instalada. Puede descargar la última versión desde la página oficialwkhtmltopdf sitio web e instálelo siguiendo las instrucciones de su sistema operativo.
Para crear un proyecto C++ de conversión de PDF en Code::Blocks, siga estos pasos:
Abra el IDE de Code::Blocks.
Vaya al menú "Archivo" y seleccione "Nuevo" y luego "Proyecto" para abrir el asistente de Nuevo Proyecto.
En el asistente de Nuevo Proyecto, seleccione "Aplicación de Consola".
Seleccione el lenguaje C++.
Establezca el título del proyecto y la ubicación en la que desea guardarlo. Haga clic en "Siguiente" para continuar.
Para asegurarnos de que Code::Blocks puede encontrar los archivos de cabecera necesarios, necesitamos configurar los directorios de búsqueda.
Haz clic en el menú "Proyecto" de la barra de menús y selecciona "Opciones de compilación". Asegúrate de seleccionar "Depurar".
En el cuadro de diálogo "Opciones de compilación", seleccione la pestaña "Buscar directorios".
En la pestaña "Compilador", pulse el botón "Añadir".
Vaya al directorio donde se encuentran los archivos de cabecera wkhtmltox(por ejemplo, C:\Archivos de Programa\wkhtmltopdf\include**)y selecciónelo.
Por último, haz clic en "Aceptar" para cerrar el cuadro de diálogo.
Para enlazar con la biblioteca wkhtmltox, siga estos pasos:
Vuelve a hacer clic en el menú "Proyecto" de la barra de menús y selecciona "Opciones de compilación". Asegúrate de seleccionar "Depurar".
En el cuadro de diálogo "Opciones de compilación", seleccione la pestaña "Configuración del enlazador".
En la pestaña "Vincular bibliotecas", pulse el botón "Añadir".
Vaya al directorio donde se encuentran los archivos de la biblioteca wkhtmltox(Por ejemplo, C:Archivos de programa**.)y seleccione el archivo de biblioteca adecuado.
Haga clic en "Abrir" para añadir la biblioteca a su proyecto.
Por último, haz clic en "Aceptar" para cerrar el cuadro de diálogo.
Para empezar, incluya los archivos de cabecera necesarios para utilizar las funcionalidades de la biblioteca wkhtmltopdf en su programa C++. Incluya los siguientes archivos de cabecera al principio del archivo de código fuente main.cpp, como se muestra en el siguiente ejemplo:
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>
Para convertir HTML a PDF, necesitamos inicializar el conversor wkhtmltopdf. El código es el siguiente:
wkhtmltopdf_init(false);
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
wkhtmltopdf_init(false);
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
wkhtmltopdf_init(False)
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings()
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings()
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs)
Ahora, vamos a proporcionar el contenido HTML que necesita ser convertido a un PDF. Puede cargar un archivo HTML o proporcionar la cadena directamente.
string htmlString = "<html><body><h1>Hello, World!</h1></body></html>"; wkhtmltopdf_add_object(converter, os, htmlString.c_str());
string htmlString = "<html><body><h1>Hello, World!</h1></body></html>"; wkhtmltopdf_add_object(converter, os, htmlString.c_str());
Dim htmlString As String = "<html><body><h1>Hello, World!</h1></body></html>"
wkhtmltopdf_add_object(converter, os, htmlString.c_str())
Con el conversor y el contenido HTML listos, podemos proceder a convertir el HTML en un archivo PDF. Utilice el siguiente fragmento de código:
wkhtmltopdf_convert(converter);
wkhtmltopdf_convert(converter);
wkhtmltopdf_convert(converter)
Con la función wkhtmltopdf_get_output, podemos obtener los datos PDF existentes como flujo de búfer de memoria. También devuelve la longitud del PDF. El siguiente ejemplo llevará a cabo esta tarea:
const unsigned char* pdfData;
const int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
const unsigned char* pdfData;
const int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
const unsigned Char* pdfData
Const pdfLength As Integer = wkhtmltopdf_get_output(converter, &pdfData)
Una vez finalizada la conversión, tenemos que guardar en el disco el archivo PDF generado. Especifique la ruta del archivo donde desea guardar el PDF. A continuación, utilizando un flujo de archivo de salida, abra el archivo en modo binario y escriba los pdfDatos en él. Por último, cierra el archivo. He aquí un ejemplo de código:
const char* outputPath = "file.pdf";
ofstream outputFile(outputPath, ios::binary);
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
const char* outputPath = "file.pdf";
ofstream outputFile(outputPath, ios::binary);
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
const Char* outputPath = "file.pdf"
ofstream outputFile(outputPath, ios:=:=binary)
outputFile.write(reinterpret_cast<const Char*>(pdfData), pdfLength)
outputFile.close()
Después de convertir HTML a PDF, es esencial limpiar los recursos asignados por wkhtmltopdf. Utilice el siguiente fragmento de código:
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
wkhtmltopdf_deinit();
cout << "PDF saved successfully." << endl;
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
wkhtmltopdf_deinit();
cout << "PDF saved successfully." << endl;
wkhtmltopdf_destroy_converter(converter)
wkhtmltopdf_destroy_object_settings(os)
wkhtmltopdf_destroy_global_settings(gs)
wkhtmltopdf_deinit()
cout << "PDF saved successfully." << endl
Ahora, construye el proyecto y ejecuta el código usando F9. La salida se genera y se guarda en la carpeta del proyecto. El PDF resultante es el siguiente:
Biblioteca de conversión de HTML a PDF IronPDF es una robusta biblioteca .NET y .NET Core C# que permite a los desarrolladores generar documentos PDF a partir de contenido HTML sin esfuerzo. Proporciona una API sencilla e intuitiva que simplifica el proceso de conversión de páginas web HTML a PDF, lo que la convierte en una opción popular para diversas aplicaciones y casos de uso.
Una de las principales ventajas de IronPDF es su versatilidad. No sólo permite convertir documentos HTML sencillos, sino también páginas web complejas con estilos CSS, interacciones JavaScript e incluso contenidos dinámicos. Además, puede desarrollar diferentes conversores de PDF con acceso rápido a sus métodos de conversión.
Este es el ejemplo de código para convertirCadena HTML a PDF con IronPDF en C#:
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create PDF content from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create PDF content from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
Imports IronPdf
' Instantiate Renderer
Private renderer = New ChromePdfRenderer()
' Create PDF content from an HTML string using C#
Private pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
' Export to a file or Stream
pdf.SaveAs("output.pdf")
La salida en PDF:
Para obtener más información sobre cómo convertir distintos archivos HTML, URL de páginas Web e imágenes a PDF, visite este enlaceEjemplos de código HTML a PDF.
Con IronPDF, generar archivos PDF a partir de contenido HTML se convierte en una tarea sencilla en lenguajes .NET Framework. Su intuitiva API y su amplio conjunto de funciones la convierten en una valiosa herramienta para los desarrolladores que necesitan convertirHTML a PDF en sus proyectos C#. Ya se trate de generar informes, facturas o cualquier otro documento que requiera una conversión precisa de HTML a PDF, IronPDF es una solución fiable y eficaz.
IronPDF es gratuito para fines de desarrollo, pero para uso comercial es necesario obtener una licencia. También proporciona unPrueba gratuita de todas las funciones de IronPDF para uso comercial con el fin de probar su funcionalidad completa. Puede descargar el programa desdeDescargar IronPDF.
9 productos API .NET para sus documentos de oficina