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 de 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:
Para crear un proyecto C++ de conversión de PDF en Code::Blocks, siga estos pasos:
Para asegurarnos de que Code::Blocks puede encontrar los archivos de cabecera necesarios, necesitamos configurar los directorios de búsqueda.
Por último, haga clic en "Aceptar" para cerrar el cuadro de diálogo.
Para enlazar con la biblioteca wkhtmltox, siga estos pasos:
Por último, haga 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 realizará 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 el flujo de archivo de salida, abra el archivo en modo binario y escriba los pdfData 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:
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, puedes desarrollar diferentes conversores de PDF con acceso rápido a sus métodos de conversión.
Este es el ejemplo de código para convertir Cadena HTML a PDF utilizando IronPDF en C#:
using IronPdf;
// Instanciar renderizador
var renderer = new ChromePdfRenderer();
// Crear contenido PDF a partir de una cadena HTML usando C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Exportar a un archivo o Stream
pdf.SaveAs("output.pdf");
using IronPdf;
// Instanciar renderizador
var renderer = new ChromePdfRenderer();
// Crear contenido PDF a partir de una cadena HTML usando C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Exportar a un archivo o Stream
pdf.SaveAs("output.pdf");
Imports IronPdf
' Instanciar renderizador
Private renderer = New ChromePdfRenderer()
' Crear contenido PDF a partir de una cadena HTML usando C#
Private pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
' Exportar a un archivo o 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 enlace página de ejemplo de código.
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 convertir HTML 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 su uso comercial requiere una licencia. También proporciona un prueba gratuita para uso comercial con el fin de probar su funcionalidad completa. Puede descargar el programa desde aquí.
9 productos API .NET para sus documentos de oficina