Solución de problemas de CMYK y PDF en idiomas internacionales

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF admite conversión de HTML a PDF en todos los idiomas internacionales soportados por Unicode, incluidos documentos de idiomas mixtos.

Dos puntos a considerar son Tipografías y Codificación de Entrada, que se explican en más detalle en esta página de FAQ: https://ironpdf.com/how-to/utf-8/

Un tipo de letra que soporte tu juego de caracteres debe estar instalado en tu servidor.

Es posible que tenga que especificar la codificación de entrada de su documento para renderizarlo correctamente.

Puede lograr esto de las siguientes maneras:

  1. Añadiendo una etiqueta HTML 'Meta Charset'

    Este método implica incluir una etiqueta <meta> dentro de la sección <head> del HTML para definir el conjunto de caracteres. Esto asegura que su documento HTML use los caracteres correctos.

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Your Document Title</title>
    </head>
    <body>
        <p>Your document content goes here...</p>
    </body>
    </html>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Your Document Title</title>
    </head>
    <body>
        <p>Your document content goes here...</p>
    </body>
    </html>
    HTML

    La etiqueta <meta charset="UTF-8"> especifica la codificación de caracteres UTF-8, que es capaz de manejar cualquier carácter Unicode.

  2. Configurando la propiedad inputEncoding de su convertidor HTML a PDF de IronPDF

    Puede establecer la propiedad inputEncoding de su convertidor IronPDF, lo que le permite especificar la codificación de caracteres durante el proceso de conversión.

    Esto se puede hacer en su código C# de la siguiente manera:

    using IronPdf;
    
    class Program
    {
        static void Main()
        {
            // Instantiate a renderer
            var Renderer = new HtmlToPdf
            {
                // Set the input encoding to UTF-8
                RenderOptions = new ChromePdfRendererOptions
                {
                    InputEncoding = "UTF-8"
                }
            };
    
            // Convert HTML to PDF
            var PDF = Renderer.RenderHtmlAsPdf("<p>Sample content with UTF-8 encoding</p>");
    
            // Save the PDF to disk
            PDF.SaveAs("output.pdf");
        }
    }
    using IronPdf;
    
    class Program
    {
        static void Main()
        {
            // Instantiate a renderer
            var Renderer = new HtmlToPdf
            {
                // Set the input encoding to UTF-8
                RenderOptions = new ChromePdfRendererOptions
                {
                    InputEncoding = "UTF-8"
                }
            };
    
            // Convert HTML to PDF
            var PDF = Renderer.RenderHtmlAsPdf("<p>Sample content with UTF-8 encoding</p>");
    
            // Save the PDF to disk
            PDF.SaveAs("output.pdf");
        }
    }
    Imports IronPdf
    
    Friend Class Program
    	Shared Sub Main()
    		' Instantiate a renderer
    		Dim Renderer = New HtmlToPdf With {
    			.RenderOptions = New ChromePdfRendererOptions With {.InputEncoding = "UTF-8"}
    		}
    
    		' Convert HTML to PDF
    		Dim PDF = Renderer.RenderHtmlAsPdf("<p>Sample content with UTF-8 encoding</p>")
    
    		' Save the PDF to disk
    		PDF.SaveAs("output.pdf")
    	End Sub
    End Class
    $vbLabelText   $csharpLabel
    • HtmlToPdf: Esta es una clase de la biblioteca IronPDF utilizada para convertir documentos HTML a PDF.
    • RenderOptions.InputEncoding: Esta propiedad le permite establecer la codificación de los datos de entrada. Aquí, se establece en "UTF-8" para soportar idiomas internacionales.
    • RenderHtmlAsPdf: Este método renderiza el contenido HTML dado en un formato PDF.
    • SaveAs: Este método se utiliza para guardar el archivo PDF renderizado en una ruta de archivo especificada.

Por favor, lea más sobre la propiedad inputEncoding en la documentación de IronPDF: IronPdf.ChromePdfRenderOptions.inputEncoding

Codificación en documentos fiscales y legales españoles

La correcta configuración de codificación tiene especial relevancia para los desarrolladores españoles que generan documentos PDF en entornos de facturación y cumplimiento normativo.

UTF-8 y caracteres castellanos en documentos VeriFactu y Facturae

Los documentos fiscales españoles —facturas VeriFactu (reguladas por la AEAT), facturas Facturae (formato XML v3.2.2 obligatorio para el sector público a través de FACe) y registros del SII (Suministro Inmediato de Información)— contienen caracteres castellanos con tilde (á, é, í, ó, ú), eñe (ñ) y signos de apertura (¿, ¡). Cuando el HTML de origen proviene de un sistema de facturación heredado con codificación ISO 8859-1 (Windows-1252), es imprescindible configurar InputEncoding = "UTF-8" o convertir el HTML a UTF-8 antes de pasarlo a IronPDF para evitar caracteres corruptos en el PDF final.

Recomendación para sistemas heredados: Si su ERP o software de facturación genera HTML con codificación ISO 8859-1 y los caracteres castellanos aparecen corruptos en el PDF, convierta el HTML a UTF-8 antes de invocar IronPDF:

// Convert ISO 8859-1 encoded HTML to UTF-8 before rendering
string htmlIso = File.ReadAllText("factura.html", Encoding.Latin1);
string htmlUtf8 = htmlIso; // already re-encoded in memory as UTF-16 .NET string
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.InputEncoding = System.Text.Encoding.UTF8;
var pdf = renderer.RenderHtmlAsPdf(htmlUtf8);
pdf.SaveAs("factura-verifactu.pdf");
// Convert ISO 8859-1 encoded HTML to UTF-8 before rendering
string htmlIso = File.ReadAllText("factura.html", Encoding.Latin1);
string htmlUtf8 = htmlIso; // already re-encoded in memory as UTF-16 .NET string
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.InputEncoding = System.Text.Encoding.UTF8;
var pdf = renderer.RenderHtmlAsPdf(htmlUtf8);
pdf.SaveAs("factura-verifactu.pdf");
Imports System.IO
Imports System.Text

' Convert ISO 8859-1 encoded HTML to UTF-8 before rendering
Dim htmlIso As String = File.ReadAllText("factura.html", Encoding.Latin1)
Dim htmlUtf8 As String = htmlIso ' already re-encoded in memory as UTF-16 .NET string
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.InputEncoding = System.Text.Encoding.UTF8
Dim pdf = renderer.RenderHtmlAsPdf(htmlUtf8)
pdf.SaveAs("factura-verifactu.pdf")
$vbLabelText   $csharpLabel

Normalización NFC para tildes en documentos TicketBAI

El sistema TicketBAI, aplicado en los tres territorios forales vascos (Bizkaia, Gipuzkoa y Araba), requiere que el texto de la leyenda obligatoria del tique sea legible y esté correctamente codificado. En cadenas de texto procedentes de bases de datos o APIs externas, los caracteres acentuados pueden almacenarse en forma NFD (descompuesta) en lugar de NFC (compuesta), lo que puede causar diferencias visuales sutiles en el PDF. Normalice las cadenas a NFC antes de inyectarlas en el HTML:

using System.Text;
// Normalize to NFC before embedding in HTML template
string leyenda = "Factura emitida conforme a TicketBAI (Gipuzkoa)";
string leyendaNfc = leyenda.Normalize(NormalizationForm.FormC);
using System.Text;
// Normalize to NFC before embedding in HTML template
string leyenda = "Factura emitida conforme a TicketBAI (Gipuzkoa)";
string leyendaNfc = leyenda.Normalize(NormalizationForm.FormC);
Imports System.Text

' Normalize to NFC before embedding in HTML template
Dim leyenda As String = "Factura emitida conforme a TicketBAI (Gipuzkoa)"
Dim leyendaNfc As String = leyenda.Normalize(NormalizationForm.FormC)
$vbLabelText   $csharpLabel

LOPDGDD y codificación en documentos con datos personales

La LOPDGDD (Ley Orgánica de Protección de Datos y Garantía de Derechos Digitales) exige que los documentos con datos personales sean legibles e íntegros. Un PDF con caracteres corruptos por problemas de codificación puede incumplir el requisito de legibilidad. Configure siempre InputEncoding = "UTF-8" en IronPDF al generar documentos que contengan nombres, direcciones o cualquier otro dato personal en castellano.

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
¿Listo para empezar?
Nuget Descargas 20,296,129 | Versión: 2026.7 recién publicada
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronPdf
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.