Saltar al pie de página
USANDO IRONPDF

Conversión de PDF en C# para España: VERI*FACTU, Facturae y TicketBAI

Conversión de PDF en C# para España: VERI*FACTU, Facturae y LOPDGDD (Tutorial)

IronPDF le permite convertir documentos a PDF en aplicaciones C# con solo unas pocas líneas de código. En el contexto del mercado español, esto incluye la generación de facturas electrónicas conformes con VERI*FACTU y el esquema Facturae, documentos SII para la AEAT, y PDFs con firma digital PAdES bajo eIDAS. IronPDF maneja transformaciones de HTML a PDF y de imágenes a PDF sin problemas en plataformas Windows, Linux y macOS.

Este artículo le muestra cómo funciona la conversión de PDF utilizando IronPDF, la biblioteca de PDF para .NET y .NET Core, con ejemplos adaptados al marco regulatorio español. Ya sea que trabaje en Windows, Linux o macOS, IronPDF brinda soporte multiplataforma para todas sus necesidades de PDF. La biblioteca ofrece documentación completa y tutoriales para ayudarle a comenzar rápidamente.

¿Qué es IronPDF y por qué es relevante para el mercado español?

En España, la generación de PDF va más allá de crear documentos visuales: implica cumplir con la Ley Crea y Crece (Ley 18/2022) que obliga a la facturación electrónica B2B en formato Facturae, el sistema VERI*FACTU de la AEAT para el registro verificable de facturas, y las obligaciones de la LOPDGDD y la AEPD respecto al tratamiento de datos personales contenidos en los documentos. IronPDF ofrece el motor de renderizado necesario para generar estos documentos con la calidad visual exigida.

  1. Generación de PDF: cree fácilmente documentos PDF mediante programación en C# a partir de diversas fuentes, incluidos HTML, imágenes, texto y archivos existentes.
  2. Conversión de HTML a PDF: convierta contenido HTML en PDF , incluidas páginas web o plantillas HTML, en PDF de alta calidad con control total sobre el estilo y el formato.
  3. Conversión de Imagen a PDF: Convierta archivos de imagen (como JPEG, PNG o BMP) en documentos PDF, lo que permite una fácil integración de imágenes en informes y documentos PDF.
  4. Manipulación de PDF: capacidades integrales de edición de PDF, incluida la extracción de texto de PDF , la fusión y división de PDF y la rotación, así como la adición, modificación o eliminación de contenido y anotaciones.
  5. Formularios PDF: cree, complete y extraiga datos de formularios PDF , lo que lo hace adecuado para aplicaciones que requieren formularios interactivos y recopilación de datos.

Ya sea que necesite generar archivos PDF desde cero , convertir páginas HTML , imágenes o documentos existentes al formato PDF, o manipular archivos PDF existentes , IronPDF ofrece API sencillas para realizar estas tareas. La biblioteca utiliza un motor de renderizado Chrome para garantizar que sus conversiones HTML se vean exactamente como deberían. Para obtener una lista completa de capacidades, consulte el sitio web Descripción general de características de IronPDF .

  1. Generación de PDF : cree archivos PDF mediante programación a partir de HTML, imágenes, texto y archivos. Admite tamaños , orientación y márgenes personalizados. También maneja idiomas internacionales .
  2. Conversión de HTML a PDF : convierte HTML a PDF con estilo completo. Admite medios CSS , JavaScript y fuentes web . Funciona con WebGL y diseños responsivos .
  3. Conversión de imágenes a PDF : convierta archivos JPEG, PNG o BMP a PDF. Admite conversión TIFF y gráficos SVG . Puede incrustar imágenes con DataURIs .
  4. Manipulación de PDF : edite archivos PDF con extracción de texto , fusión/división y anotaciones . También puede redactar texto , agregar sellos y administrar metadatos .
  5. Formularios PDF : crea y completa formularios PDF . Admite la creación y edición de formularios . Puede aplanar archivos PDF a contenido estático.

¿Cómo creo un nuevo proyecto de Visual Studio?

Antes de sumergirnos en el código, configuremos un nuevo proyecto de aplicación de consola C#. Si eres nuevo en el desarrollo .NET , es posible que la guía de inicio rápido te resulte útil para obtener sugerencias de configuración adicionales. Los desarrolladores de F# también pueden utilizar IronPDF con enfoques de programación funcional.

  1. Abra Visual Studio y cree un nuevo proyecto haciendo clic en Archivo > Nuevo > Proyecto .

    El menú Archivo de Visual Studio se expandió y mostró varias opciones, incluidas Nuevo proyecto, Clonar repositorio, Abrir archivo/proyecto y Guardar opciones con atajos de teclado El menú Archivo de Visual Studio proporciona acceso rápido a funciones esenciales de gestión de proyectos, desde la creación de nuevos proyectos hasta la clonación de repositorios desde sistemas de control de versiones.

  2. Aparece una nueva ventana. Seleccione la plantilla Aplicación de consola y haga clic en Siguiente en la parte inferior. Esta plantilla es perfecta para aprender los conceptos básicos de PDF antes de pasar a tipos de proyectos complejos como aplicaciones Blazor oASP.NET MVC .

    Cuadro de diálogo 'Crear un nuevo proyecto' de Visual Studio que muestra la plantilla de aplicación de consola seleccionada para crear una aplicación de línea de comandos .NET Core compatible con Windows, Linux y macOS. La plantilla de aplicación de consola en Visual Studio proporciona un punto de partida para crear aplicaciones de línea de comandos multiplataforma utilizando .NET Core.

  3. En la siguiente ventana, nombre su proyecto y elija una ubicación, luego haga clic en Siguiente . Considere organizar los proyectos en una carpeta dedicada para acceder fácilmente a ejemplos de código y archivos de muestra .

    El cuadro de diálogo 'Configurar su nuevo proyecto' de Visual Studio muestra la configuración de una aplicación de consola llamada 'Conversión de PDF' con la ubicación del proyecto y las configuraciones de la solución. Paso 2: Configurar el nuevo proyecto de aplicación de consola con configuraciones de nombre y ubicación adecuadas para la aplicación de conversión de PDF.

  4. Seleccione el marco de destino y haga clic en Crear . Para aplicaciones modernas, utilice .NET 6 o posterior para obtener el mejor rendimiento y soporte. Las versiones recientes ofrecen un rendimiento mejorado y capacidades asincrónicas .

    Cuadro de diálogo de creación de proyecto de Visual Studio que muestra la página 'Información adicional' con .NET 5.0 seleccionado como el marco de destino para una aplicación de consola. El paso final para crear una nueva aplicación de consola en Visual Studio, donde se selecciona el marco de destino. Tenga en cuenta que .NET 5.0 está marcado como "Fuera de soporte"; considere usar .NET 6.0 o .NET 8.0 para proyectos actuales.

Tu proyecto está listo. Instalemos IronPDF.

¿Cómo se instala IronPDF?

IronPDF ofrece varios métodos de instalación. Aquí utilizaremos el Administrador de paquetes NuGet . Puede explorar métodos de instalación avanzados para escenarios específicos, incluidas las opciones de Windows Installer y las configuraciones de Linux .

  1. En Visual Studio, abra el menú Herramientas y coloque el cursor sobre Administrador de paquetes NuGet .
  2. Haga clic en Administrar paquetes NuGet para soluciones.

    El menú de Herramientas de Visual Studio se expandió y muestra el submenú del Administrador de paquetes NuGet con opciones para la Consola del administrador de paquetes, Administrar paquetes NuGet para la solución y Configuración del administrador de paquetes El menú Herramientas de Visual Studio proporciona acceso a las funciones del Administrador de paquetes NuGet , que son esenciales para administrar bibliotecas externas y dependencias en proyectos .NET

  3. Aparece una nueva ventana. Haga clic en la pestaña Explorar y busque "IronPDF".
  4. Seleccione IronPDF y haga clic en Instalar. Para implementaciones más pequeñas, considere IronPdf.Slim .
  5. También puedes instalarlo a través de la consola del administrador de paquetes:

    Install-Package IronPdf

O descargue directamente desde la página NuGet de IronPDF . Para los contenedores, consulte la guía de implementación de Docker o ejecute IronPDF como un contenedor remoto .

¿Cómo convierto archivos a PDF usando IronPDF?

Exploremos la conversión de diferentes formatos de documentos a PDF. IronPDF ofrece amplias opciones de renderizado para personalizar la salida, incluido el registro personalizado y la supervisión del rendimiento .

  1. Archivos HTML a Documentos PDF
  2. Imagen a Documentos PDF

¿Cómo convierto archivos HTML a PDF en el contexto de la facturación electrónica española?

Convertir HTML a PDF es increíblemente sencillo con IronPDF. La biblioteca admite funciones avanzadas como encabezados y pies de página, saltos de página y CSS personalizado. Para el mercado español, puede generar plantillas de factura que incluyan el NIF del emisor (B-28.456.789), el CIF del receptor (A-12.345.678), los importes con IVA al 21% en formato español (1.239,04 €), y la referencia VERI*FACTU o el código QR de la AEAT.

A continuación se explica cómo convertir un archivo HTML de factura en PDF:

using IronPdf;

// Create an instance of the ChromePdfRenderer class.
var renderer = new ChromePdfRenderer();

// Optional: Configure rendering options for better output
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;

// Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;

// Set print CSS media type for proper formatting
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

// Add custom headers for authenticated content
renderer.RenderingOptions.CustomCssUrl = "___PROTECTED_URL_142___";

// Configure viewport for responsive design
renderer.RenderingOptions.ViewPortWidth = 1024;

// Render the HTML file as a PDF document.
var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");

// Optional: Add metadata
pdf.MetaData.Author = "Your Company";
pdf.MetaData.Keywords = "invoice, pdf, conversion";
pdf.MetaData.CreationDate = System.DateTime.Now;

// Save the PDF document as an output file.
pdf.SaveAs("output.pdf");

// Alternative: Save with compression
pdf.CompressImages(80);
pdf.SaveAs("compressed-output.pdf");
using IronPdf;

// Create an instance of the ChromePdfRenderer class.
var renderer = new ChromePdfRenderer();

// Optional: Configure rendering options for better output
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;

// Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = true;

// Set print CSS media type for proper formatting
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

// Add custom headers for authenticated content
renderer.RenderingOptions.CustomCssUrl = "___PROTECTED_URL_142___";

// Configure viewport for responsive design
renderer.RenderingOptions.ViewPortWidth = 1024;

// Render the HTML file as a PDF document.
var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");

// Optional: Add metadata
pdf.MetaData.Author = "Your Company";
pdf.MetaData.Keywords = "invoice, pdf, conversion";
pdf.MetaData.CreationDate = System.DateTime.Now;

// Save the PDF document as an output file.
pdf.SaveAs("output.pdf");

// Alternative: Save with compression
pdf.CompressImages(80);
pdf.SaveAs("compressed-output.pdf");
Imports IronPdf

' Create an instance of the ChromePdfRenderer class.
Dim renderer As New ChromePdfRenderer()

' Optional: Configure rendering options for better output
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4

' Enable JavaScript execution for dynamic content
renderer.RenderingOptions.EnableJavaScript = True

' Set print CSS media type for proper formatting
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print

' Add custom headers for authenticated content
renderer.RenderingOptions.CustomCssUrl = "___PROTECTED_URL_142___"

' Configure viewport for responsive design
renderer.RenderingOptions.ViewPortWidth = 1024

' Render the HTML file as a PDF document.
Dim pdf = renderer.RenderHtmlFileAsPdf("invoice.html")

' Optional: Add metadata
pdf.MetaData.Author = "Your Company"
pdf.MetaData.Keywords = "invoice, pdf, conversion"
pdf.MetaData.CreationDate = System.DateTime.Now

' Save the PDF document as an output file.
pdf.SaveAs("output.pdf")

' Alternative: Save with compression
pdf.CompressImages(80)
pdf.SaveAs("compressed-output.pdf")
$vbLabelText   $csharpLabel

Este código transforma un archivo HTML ("invoice.html") en un documento PDF. Al crear un ChromePdfRenderer, estás utilizando el motor Chromium para garantizar una conversión precisa que preserve la apariencia de tu página web. Las opciones de renderizado permiten personalizar los márgenes y el tamaño del papel. El PDF resultante se guarda como "output.pdf" con una simple llamada a SaveAs. Este proceso optimizado hace que la conversión de HTML a PDF sea sencilla para generar archivos PDF en C#.

Para escenarios complejos, explore la conversión de URL a PDF , el trabajo con cadenas HTML o la conversión de archivos CSHTML en aplicaciones ASP.NET MVC. También puede representar gráficos de JavaScript y manejar aplicaciones Angular .

¿Cómo se ve la salida HTML a PDF?

PDF viewer interface showing a sample invoice template with placeholder company information, two line items totaling $190.00, and navigation controls Ejemplo de una plantilla de factura básica visualizada en un lector de PDF, que muestra elementos de factura estándar, incluidos detalles del remitente/destinatario, servicios detallados y cálculos de precios.

Para una mejor generación de PDF, considere agregar números de página , tabla de contenido o marcas de agua personalizadas . Puede optimizar la salida con linealización para una visualización web más rápida.

¿Cómo convierto imágenes a PDF?

Convirtamos imágenes en documentos PDF. Con un código mínimo, puede convertir archivos JPEG, PNG, BMP y SVG . La biblioteca también admite funciones avanzadas como dibujar líneas y rectángulos o agregar texto y mapas de bits a archivos PDF existentes.

¿Qué formatos de imagen puedo convertir?

 Captura de pantalla de la página de inicio de IronPDF que muestra las características clave de la biblioteca PDF de C# para crear, editar y leer archivos PDF en aplicaciones .NET . IronPDF ofrece una completa biblioteca de PDF en C# con soporte para conversión de HTML a PDF, compatibilidad entre plataformas y más de 50 funciones para la manipulación de PDF en aplicaciones .NET .

using IronPdf;
using System.IO;
using System.Linq;

// Enumerate all PNG files from the specified directory.
var imageFiles = Directory.EnumerateFiles("assets").Where(f => f.EndsWith(".png"));

// Create an instance of ImageToPdfConverter
var imageToPdf = new ImageToPdfConverter();

// Optional: Set rendering options for better control
imageToPdf.ImageBehavior = ImageBehavior.CropPage;
imageToPdf.PaperSize = IronPdf.Imaging.PdfPaperSize.A4;

// Set margins for professional appearance
imageToPdf.PaperMargins = new IronPdf.Imaging.PdfPaperMargins(25);

// Control image quality and compression
imageToPdf.ImageQuality = 90; // 0-100 quality scale

// Convert the images to a PDF document.
ImageToPdfConverter.ImageToPdf(imageFiles).SaveAs("composite.pdf");

// Alternative: Convert a single image with custom settings
var singleImagePdf = imageToPdf.ImageToPdf("assets/logo.png");
singleImagePdf.SaveAs("single-image.pdf");

// Advanced: Add metadata to image PDF
singleImagePdf.MetaData.Title = "Company Logo";
singleImagePdf.MetaData.Subject = "Brand Assets";
singleImagePdf.MetaData.CreationDate = DateTime.Now;
singleImagePdf.SaveAs("logo-with-metadata.pdf");
using IronPdf;
using System.IO;
using System.Linq;

// Enumerate all PNG files from the specified directory.
var imageFiles = Directory.EnumerateFiles("assets").Where(f => f.EndsWith(".png"));

// Create an instance of ImageToPdfConverter
var imageToPdf = new ImageToPdfConverter();

// Optional: Set rendering options for better control
imageToPdf.ImageBehavior = ImageBehavior.CropPage;
imageToPdf.PaperSize = IronPdf.Imaging.PdfPaperSize.A4;

// Set margins for professional appearance
imageToPdf.PaperMargins = new IronPdf.Imaging.PdfPaperMargins(25);

// Control image quality and compression
imageToPdf.ImageQuality = 90; // 0-100 quality scale

// Convert the images to a PDF document.
ImageToPdfConverter.ImageToPdf(imageFiles).SaveAs("composite.pdf");

// Alternative: Convert a single image with custom settings
var singleImagePdf = imageToPdf.ImageToPdf("assets/logo.png");
singleImagePdf.SaveAs("single-image.pdf");

// Advanced: Add metadata to image PDF
singleImagePdf.MetaData.Title = "Company Logo";
singleImagePdf.MetaData.Subject = "Brand Assets";
singleImagePdf.MetaData.CreationDate = DateTime.Now;
singleImagePdf.SaveAs("logo-with-metadata.pdf");
Imports IronPdf
Imports System.IO
Imports System.Linq

' Enumerate all PNG files from the specified directory.
Dim imageFiles = Directory.EnumerateFiles("assets").Where(Function(f) f.EndsWith(".png"))

' Create an instance of ImageToPdfConverter
Dim imageToPdf = New ImageToPdfConverter()

' Optional: Set rendering options for better control
imageToPdf.ImageBehavior = ImageBehavior.CropPage
imageToPdf.PaperSize = IronPdf.Imaging.PdfPaperSize.A4

' Set margins for professional appearance
imageToPdf.PaperMargins = New IronPdf.Imaging.PdfPaperMargins(25)

' Control image quality and compression
imageToPdf.ImageQuality = 90 ' 0-100 quality scale

' Convert the images to a PDF document.
ImageToPdfConverter.ImageToPdf(imageFiles).SaveAs("composite.pdf")

' Alternative: Convert a single image with custom settings
Dim singleImagePdf = imageToPdf.ImageToPdf("assets/logo.png")
singleImagePdf.SaveAs("single-image.pdf")

' Advanced: Add metadata to image PDF
singleImagePdf.MetaData.Title = "Company Logo"
singleImagePdf.MetaData.Subject = "Brand Assets"
singleImagePdf.MetaData.CreationDate = DateTime.Now
singleImagePdf.SaveAs("logo-with-metadata.pdf")
$vbLabelText   $csharpLabel

Este código muestra dos enfoques: conversión por lotes de múltiples archivos PNG y conversión de una sola imagen. Encuentra todos los archivos PNG en la carpeta de activos y los convierte a PDF usando ImageToPdfConverter.ImageToPdf. La propiedad ImageBehavior controla la posición de la imagen en la página. Finalmente, guarda el PDF usando SaveAs.

Para un manejo avanzado de imágenes, explore la posibilidad de incrustar imágenes desde Azure Blob Storage o trabajar con imágenes codificadas en Base64 . También puedes rasterizar archivos PDF en imágenes para conversión inversa.

¿Cómo se ve la salida de imagen a PDF?

Captura de pantalla de la página web de la documentación de IronPDF que muestra la página de inicio de la biblioteca PDF de C# con funciones para crear y editar archivos PDF en aplicaciones .NET La página de inicio de la biblioteca IronPDF muestra características clave que incluyen conversión de HTML a PDF, soporte multiplataforma para marcos .NET y un destacado botón "Prueba gratuita de 30 días".

Funciones avanzadas de conversión de PDF para el cumplimiento normativo en España

Más allá de la conversión básica de HTML e imágenes, IronPDF ofrece muchas funciones avanzadas para un trabajo integral con PDF, especialmente relevantes para el cumplimiento normativo en España. La biblioteca admite operaciones asincrónicas y procesamiento paralelo para escenarios de alto rendimiento, como la generación masiva de facturas bajo el SII de la AEAT.

Para empresas en los territorios forales del País Vasco (Bizkaia, Gipuzkoa y Araba) y Navarra, el sistema TicketBAI (y NaTicket en Navarra) exige que cada documento de factura incorpore un identificador único TBai y un código QR verificable. IronPDF puede renderizar estos elementos en el PDF partiendo de la plantilla HTML que los contenga. Asimismo, los documentos Facturae destinados al FACe (Punto General de Entrada de Facturas Electrónicas de la Administración del Estado) requieren que el PDF visual refleje fielmente el contenido del XML Facturae 3.2.2 firmado con certificado de la FNMT-RCM.

¿Qué tipos de documentos puedo convertir a PDF?

IronPDF admite la conversión de varios formatos:

¿Cómo puedo mejorar mis PDF generados y garantizar el cumplimiento con LOPDGDD y eIDAS?

Después de convertir los documentos a PDF, mejórelos con:

Generación de documentos Facturae con IVA 21% e integración VERI*FACTU en C

Para empresas españolas, el flujo de generación de documentos de facturación en C# suele combinar dos salidas: el XML Facturae firmado y el PDF visual. IronPDF cubre la generación del PDF. El siguiente es un ejemplo de estructura de factura con los campos requeridos por la normativa española:

// Ejemplo de factura española con campos VERI*FACTU y Facturae
string facturaHtml = $@"
<html>
<body style='font-family: Arial; padding: 20px;'>
  <h2>FACTURA N.º FAC-2026-00351</h2>
  <p><strong>Emisor:</strong> Software Ibérico, S.L. | NIF: B-28.456.789</p>
  <p><strong>Receptor:</strong> Distribuciones Norte, S.A. | CIF: A-12.345.678</p>
  <p><strong>Fecha:</strong> {DateTime.Now:dd/MM/yyyy}</p>
  <table border='1' style='width:100%;'>
    <tr><th>Concepto</th><th>Base (€)</th><th>IVA 21%</th><th>Total (€)</th></tr>
    <tr><td>Licencia anual ERP</td><td>2.400,00</td><td>504,00</td><td>2.904,00</td></tr>
    <tr><td>Soporte técnico</td><td>600,00</td><td>126,00</td><td>726,00</td></tr>
  </table>
  <p><strong>Base imponible total: 3.000,00 €</strong></p>
  <p><strong>IVA total (21%): 630,00 €</strong></p>
  <p><strong>TOTAL FACTURA: 3.630,00 €</strong></p>
  <p>Certificado FNMT-RCM | Ref. VERI*FACTU AEAT: FAC-2026-00351-ES</p>
</body>
</html>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(facturaHtml);
pdf.SaveAs("factura_FAC-2026-00351.pdf");
// XML Facturae 3.2.2 + firma XAdES/PAdES se genera en pipeline paralelo
// Ejemplo de factura española con campos VERI*FACTU y Facturae
string facturaHtml = $@"
<html>
<body style='font-family: Arial; padding: 20px;'>
  <h2>FACTURA N.º FAC-2026-00351</h2>
  <p><strong>Emisor:</strong> Software Ibérico, S.L. | NIF: B-28.456.789</p>
  <p><strong>Receptor:</strong> Distribuciones Norte, S.A. | CIF: A-12.345.678</p>
  <p><strong>Fecha:</strong> {DateTime.Now:dd/MM/yyyy}</p>
  <table border='1' style='width:100%;'>
    <tr><th>Concepto</th><th>Base (€)</th><th>IVA 21%</th><th>Total (€)</th></tr>
    <tr><td>Licencia anual ERP</td><td>2.400,00</td><td>504,00</td><td>2.904,00</td></tr>
    <tr><td>Soporte técnico</td><td>600,00</td><td>126,00</td><td>726,00</td></tr>
  </table>
  <p><strong>Base imponible total: 3.000,00 €</strong></p>
  <p><strong>IVA total (21%): 630,00 €</strong></p>
  <p><strong>TOTAL FACTURA: 3.630,00 €</strong></p>
  <p>Certificado FNMT-RCM | Ref. VERI*FACTU AEAT: FAC-2026-00351-ES</p>
</body>
</html>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(facturaHtml);
pdf.SaveAs("factura_FAC-2026-00351.pdf");
// XML Facturae 3.2.2 + firma XAdES/PAdES se genera en pipeline paralelo
Imports System
Imports IronPdf

' Ejemplo de factura española con campos VERI*FACTU y Facturae
Dim facturaHtml As String = $"
<html>
<body style='font-family: Arial; padding: 20px;'>
  <h2>FACTURA N.º FAC-2026-00351</h2>
  <p><strong>Emisor:</strong> Software Ibérico, S.L. | NIF: B-28.456.789</p>
  <p><strong>Receptor:</strong> Distribuciones Norte, S.A. | CIF: A-12.345.678</p>
  <p><strong>Fecha:</strong> {DateTime.Now:dd/MM/yyyy}</p>
  <table border='1' style='width:100%;'>
    <tr><th>Concepto</th><th>Base (€)</th><th>IVA 21%</th><th>Total (€)</th></tr>
    <tr><td>Licencia anual ERP</td><td>2.400,00</td><td>504,00</td><td>2.904,00</td></tr>
    <tr><td>Soporte técnico</td><td>600,00</td><td>126,00</td><td>726,00</td></tr>
  </table>
  <p><strong>Base imponible total: 3.000,00 €</strong></p>
  <p><strong>IVA total (21%): 630,00 €</strong></p>
  <p><strong>TOTAL FACTURA: 3.630,00 €</strong></p>
  <p>Certificado FNMT-RCM | Ref. VERI*FACTU AEAT: FAC-2026-00351-ES</p>
</body>
</html>"

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(facturaHtml)
pdf.SaveAs("factura_FAC-2026-00351.pdf")
' XML Facturae 3.2.2 + firma XAdES/PAdES se genera en pipeline paralelo
$vbLabelText   $csharpLabel

Este ejemplo incorpora el NIF del emisor, el CIF del receptor, los importes en formato español con separador de miles como punto y decimal como coma, IVA al 21%, y la referencia al registro VERI*FACTU. El certificado FNMT-RCM garantiza la firma digital reconocida por la AEAT. Para el SII, el registro de la factura debe transmitirse a la AEAT antes del cuarto día hábil siguiente a su emisión.

¿Cómo optimizo el rendimiento de la conversión de PDF?

Para un mejor rendimiento en sus aplicaciones:

Integración de IronPDF con TicketBAI y NaTicket en C# (.NET)

Los sistemas TicketBAI (Bizkaia, Gipuzkoa y Araba) y NaTicket (Navarra) son regímenes de facturación electrónica foral que obligan a incluir en cada documento emitido un identificador único de trazabilidad y un código QR verificable por las respectivas Haciendas Forales. El flujo de trabajo recomendado con IronPDF es:

  1. Generar el XML TicketBAI/NaTicket firmado con el software foral homologado (la firma usa XAdES con el certificado de la entidad).
  2. Construir el HTML de la factura incluyendo el código QR (imagen en base64) y la cadena TBai generados por el software foral.
  3. Renderizar el PDF con ChromePdfRenderer.RenderHtmlAsPdf() de IronPDF, obteniendo el documento visual conforme con la normativa foral.
  4. Almacenar el PDF junto al XML firmado para su conservación fiscal (mínimo 4 años según la Ley Foral del Impuesto sobre el Valor Añadido en Navarra / Normas Forales del País Vasco).

Esta arquitectura desacopla la lógica de firma digital (gestión de certificados FNMT-RCM o equivalente foral) de la generación del documento visual, lo que facilita el mantenimiento y la actualización de cada componente de forma independiente. Además, para los documentos que contienen datos personales (nombre, NIF, dirección del receptor), el sistema debe garantizar el cumplimiento con la LOPDGDD y las resoluciones vinculantes de la AEPD sobre periodos de conservación de documentos fiscales digitales.

¿Qué pasa con las consideraciones específicas de cada plataforma?

IronPDF ofrece un soporte integral de plataformas:

Puntos clave: conversión de PDF en C# para el mercado español

Este artículo exploró la conversión de PDF en C# para la gestión y el uso compartido de documentos en el contexto normativo español. Con C# y IronPDF, puede integrar fácilmente la funcionalidad PDF en sus aplicaciones. Desde la generación de archivos PDF hasta la conversión de HTML, imágenes y documentos existentes, IronPDF ofrece capacidades integrales. Los ejemplos de código mostraron cómo convertir documentos HTML e imágenes a PDF con el mínimo esfuerzo.

Desde la perspectiva del cumplimiento normativo español, IronPDF facilita la integración con los principales sistemas de facturación electrónica: VERI*FACTU (AEAT), Facturae 3.2.2 (FACe), TicketBAI (Bizkaia, Gipuzkoa, Araba) y NaTicket (Navarra). Los documentos generados pueden firmarse digitalmente en formato PAdES con certificados FNMT-RCM bajo eIDAS, garantizando validez jurídica transfronteriza en la UE. Para el tratamiento de datos personales incluidos en los PDFs, es obligatorio cumplir con la LOPDGDD y las instrucciones de la AEPD. En comparación con alternativas de código libre como iText (AGPL), IronPDF ofrece una licencia comercial sin restricciones copyleft, lo que resulta esencial para soluciones propietarias de facturación en España.

La fortaleza de IronPDF reside en sus completas funciones:

  • Compatibilidad multiplataforma con Windows , Linux , macOS y la nube.
  • Múltiples formatos de conversión, incluidos HTML, imágenes, DOCX, RTF y más
  • Funciones avanzadas como firmas digitales, cifrado, formularios y anotaciones.
  • Optimización del rendimiento mediante operaciones asincrónicas y procesamiento paralelo
  • Representación perfecta de píxeles mediante el motor de representación de Chrome
  • Documentación completa con referencias de API y guías de solución de problemas

Como se muestra, IronPDF simplifica tareas PDF complejas, lo que lo hace valioso para los desarrolladores que mejoran el procesamiento de documentos en aplicaciones .NET . Ya sea que se trate de crear aplicaciones web , software de escritorio o servicios en la nube , IronPDF proporciona las herramientas para la generación profesional de PDF. El conjunto de características de la biblioteca incluye la creación , edición , conversión y protección de documentos PDF.

Escenarios de uso en el mercado español: Una empresa de software española que genera facturas para sus clientes bajo el régimen VERIFACTU puede configurar un pipeline C# que: (1) genera el HTML de la factura con los campos NIF (B-28.456.789), CIF receptor (A-12.345.678), base imponible, IVA al 21% (por ejemplo, 1.024,00 € de base → 215,04 € de IVA → 1.239,04 € total) y referencia QR AEAT; (2) usa ChromePdfRenderer.RenderHtmlAsPdf() para obtener el PDF; (3) aplica firma digital PAdES con certificado FNMT-RCM; y (4) transmite el registro XML VERIFACTU a la AEAT por separado. El SII de la AEAT admite el envío de los registros de facturas dentro de los cuatro días hábiles siguientes a su emisión, y el PDF generado con IronPDF constituye la representación visual del documento fiscal que debe conservarse según los plazos de prescripción del Impuesto sobre el Valor Añadido en España (4 años desde la presentación de la última declaración).

Para descargar la biblioteca de conversión de PDF, visite la página de NuGet del paquete IronPDF. Además, consulte el tutorial de conversión de HTML a PDF con IronPDF . Para un aprendizaje práctico, explore nuestros ejemplos de código y tutoriales completos . Los desarrolladores de IronPDF pueden elegir entre varias licencias para adaptarse a sus necesidades. Está disponible una prueba gratuita . Para obtener información completa sobre precios y licencias, visita la página de Información de licencias de IronPDF . Consulte el registro de cambios para obtener las últimas actualizaciones y mejoras.

Preguntas Frecuentes

¿Cómo genero PDFs conformes con VERI*FACTU usando IronPDF en C#?

Con IronPDF puede renderizar plantillas HTML con los campos requeridos por el sistema VERI*FACTU de la AEAT: NIF del emisor (p. ej., B-28.456.789), CIF del receptor (A-12.345.678), importes con IVA 21% en formato español (1.239,04 €) y referencia QR AEAT. Use ChromePdfRenderer.RenderHtmlAsPdf() para convertir la plantilla a PDF con fidelidad de Chrome.

¿Puede IronPDF generar PDFs Facturae para envío al FACe?

IronPDF genera la representación visual PDF de la factura con los campos Facturae 3.2.2. El fichero XML Facturae firmado con certificado FNMT-RCM debe generarse complementariamente para la transmisión al FACe (Punto General de Entrada de Facturas Electrónicas). El PDF de IronPDF actúa como representación visual adjunta al XML.

¿Cómo integro IronPDF con TicketBAI en Bizkaia, Gipuzkoa o Araba?

El flujo recomendado es: (1) generar el XML TicketBAI con el software foral homologado; (2) construir el HTML de la factura con el código QR TBai y la cadena de identificación; (3) renderizar el PDF con IronPDF. El mismo proceso aplica para NaTicket en Navarra. IronPDF cubre exclusivamente la capa de generación visual del documento.

¿Qué obligaciones impone la LOPDGDD al generar PDFs con datos personales en España?

Al generar PDFs con datos personales (nombres, NIFs, direcciones), debe cumplir con la LOPDGDD (Ley Orgánica 3/2018) y las directrices de la AEPD. Las obligaciones incluyen: base jurídica del tratamiento, información al interesado, plazos de conservación (4 años para documentos fiscales) y medidas de seguridad técnicas. IronPDF facilita el cifrado y las restricciones de permisos como medida técnica elemental.

¿Cuál es la ventaja de IronPDF frente a bibliotecas AGPL como iText para proyectos en España?

Las bibliotecas de código libre como iText se distribuyen bajo AGPL, obligando a los ISV a publicar el código fuente completo de sus aplicaciones si integran iText en productos distribuidos. Para empresas españolas que desarrollan soluciones propietarias de facturación VERI*FACTU, Facturae o TicketBAI, IronPDF ofrece una licencia comercial sin restricciones copyleft, protegiendo la propiedad intelectual de la solución.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame