HERRAMIENTAS PDF

Cómo convertir HTML a PDF en C++

Actualizado 1 de julio, 2023
Compartir:

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.

WKBiblioteca TOPdf

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.

Requisitos previos

Para crear un conversor de archivos HTML a PDF en C++, debemos comprobar que se cumplen los siguientes requisitos:

  1. Un compilador de C++ como GCC o Clang instalado en su sistema.
  2. biblioteca wkhtmltopdf instalada. Puede descargar la última versión desde la página oficial wkhtmltopdf sitio web e instálelo siguiendo las instrucciones de su sistema operativo.
  3. Conocimientos básicos de programación en C++.

Crear un proyecto C++ HtmltoPdf en Code:Blocks

Para crear un proyecto C++ de conversión de PDF en Code::Blocks, siga estos pasos:

  1. Abra el IDE de Code::Blocks.
  2. Vaya al menú "Archivo" y seleccione "Nuevo" y luego "Proyecto" para abrir el asistente de Nuevo Proyecto.
  3. En el asistente de Nuevo Proyecto, seleccione "Aplicación de Consola".
  4. Seleccione el lenguaje C++.
  5. Establezca el título del proyecto y la ubicación en la que desea guardarlo. Haga clic en "Siguiente" para continuar.
  6. Seleccione el compilador C++ y el destino de compilación adecuados, como Debug o Release. Haga clic en "Finalizar" para crear el proyecto.

Configuración de directorios de búsqueda

Para asegurarnos de que Code::Blocks puede encontrar los archivos de cabecera necesarios, necesitamos configurar los directorios de búsqueda.

  1. Haz clic en el menú "Proyecto" de la barra de menús y selecciona "Opciones de compilación". Asegúrate de seleccionar "Depurar".
  2. En el cuadro de diálogo "Opciones de creación", seleccione la pestaña "Buscar directorios".
  3. En la pestaña "Compilador", pulse el botón "Añadir".
  4. Vaya al directorio donde se encuentran los archivos de cabecera wkhtmltox (por ejemplo, C:\Archivos de Programa\wkhtmltopdf\include**)y selecciónelo.
  5. Por último, haga clic en "Aceptar" para cerrar el cuadro de diálogo.

    Cómo convertir HTML a PDF en C++: Figura 1 - Directorios de búsqueda

Vinculación de las bibliotecas

Para enlazar con la biblioteca wkhtmltox, siga estos pasos:

  1. 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".
  2. En el cuadro de diálogo "Build options", selecciona la pestaña "Linker settings".
  3. En la pestaña "Vincular bibliotecas", pulse el botón "Añadir".
  4. 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.
  5. Haga clic en "Abrir" para añadir la biblioteca a su proyecto.
  6. Por último, haga clic en "Aceptar" para cerrar el cuadro de diálogo.

    Cómo convertir HTML a PDF en C++: Figura 2 - Vinculación de bibliotecas

Pasos para convertir fácilmente HTML a PDF en C++

Paso 1 Incluir la biblioteca para convertir archivos HTML

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>
VB   C#

Paso 2 Inicializar el conversor

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)
VB   C#

Paso 3 Configurar el contenido HTML

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())
VB   C#

Paso 4 Convertir HTML a PDF

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)
VB   C#

Paso 5 Obtener la salida como Memoria intermedia

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)
VB   C#

Paso 6 Guardar el archivo PDF

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()
VB   C#

Paso 7 Limpieza

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
VB   C#

Paso 8 Ejecutar el código y generar el archivo PDF

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:

Cómo convertir HTML a PDF en C++: Figura 3 - Salida PDF

Archivo HTML a archivo PDF en C#

IronPDF

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")
VB   C#

La salida en PDF:

Cómo convertir HTML a PDF en C++: Figura 4 - Salida de IronPDF

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í.

< ANTERIOR
Cómo leer archivos PDF en C++
SIGUIENTE >
Cómo convertir HTML a PDF en Node.js usando Puppeteer

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123