Cómo utilizar la codificación UTF-8 y los idiomas internacionales en los PDF

IronPDF admite la codificación UTF-8 en los PDF porque cumple el estándar Chrome. IronPDF admite cualquier carácter que se pueda representar correctamente en un navegador Chrome. Puede estar seguro de que los caracteres de las lenguas extranjeras se renderizarán correctamente. En este artículo explicaremos paso a paso cómo renderizar UTF-8 en un PDF.

Biblioteca NuGet C# para PDF

Instalar con NuGet

Install-Package IronPdf
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto



Ejemplo de código sencillo

Cuando trabajamos con IronPDF, a menudo utilizamos conjuntos de caracteres extendidos como la codificación UTF-8.

Aquí tenemos un ejemplo de la cadena que se pasa en el método RenderHtmlAsPdf que espera una entrada de cadena HTML:

周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。
文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。
失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。
陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。

أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملاً المنتصر,
٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط,
زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل.

ภคันทลาพาธสตาร์เซฟตี้ แชมป์ มาร์เก็ตติ้งล้มเหลวโยเกิร์ต แลนด์บาบูนอึมครึม รุสโซ แบรนด์ไคลแม็กซ์ พิซซ่าโมเดลเสือโคร่ง ม็อบโซนรายชื่อ
แอดมิชชั่น ด็อกเตอร์ พะเรอ มาร์คเจไดโมจิราสเบอร์รี เอนทรานซ์ออดิชั่นศิลปวัฒนธรรมเปราะบาง โมจิซีเรียสวอลนัตทริปลีเมอร์ ทิป วาไรตี้บิ๊กเมเปิล

A partir del texto anterior envolveremos las cadenas en `

porque se trata de una cadena HTML. Pase la cadena al renderizador de PDF de Chrome de IronPDF:

:path=/static-assets/pdf/content-code-examples/how-to/utf-8.cs
using IronPdf;

const string html_with_utf_8 =
    @"<p>周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。
    文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。
    失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。
    陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。</p>
    <p>
    أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملاً المنتصر,
    ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط,
    زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل.
    </p>
    <p>
    ภคันทลาพาธสตาร์เซฟตี้ แชมป์ มาร์เก็ตติ้งล้มเหลวโยเกิร์ต แลนด์บาบูนอึมครึม รุสโซ แบรนด์ไคลแม็กซ์ พิซซ่าโมเดลเสือโคร่ง ม็อบโซนรายชื่อ
    แอดมิชชั่น ด็อกเตอร์ พะเรอ มาร์คเจไดโมจิราสเบอร์รี เอนทรานซ์ออดิชั่นศิลปวัฒนธรรมเปราะบาง โมจิซีเรียสวอลนัตทริปลีเมอร์ ทิป วาไรตี้บิ๊กเมเปิล
    </p>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.InputEncoding = System.Text.Encoding.UTF8;

var pdf = renderer.RenderHtmlAsPdf(html_with_utf_8);
pdf.SaveAs("Unicode.pdf");
Imports IronPdf

Private Const html_with_utf_8 As String = "<p>周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。
    文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。
    失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。
    陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。</p>
    <p>
    أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملاً المنتصر,
    ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط,
    زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل.
    </p>
    <p>
    ภคันทลาพาธสตาร์เซฟตี้ แชมป์ มาร์เก็ตติ้งล้มเหลวโยเกิร์ต แลนด์บาบูนอึมครึม รุสโซ แบรนด์ไคลแม็กซ์ พิซซ่าโมเดลเสือโคร่ง ม็อบโซนรายชื่อ
    แอดมิชชั่น ด็อกเตอร์ พะเรอ มาร์คเจไดโมจิราสเบอร์รี เอนทรานซ์ออดิชั่นศิลปวัฒนธรรมเปราะบาง โมจิซีเรียสวอลนัตทริปลีเมอร์ ทิป วาไรตี้บิ๊กเมเปิล
    </p>"

Private renderer = New ChromePdfRenderer()
renderer.RenderingOptions.InputEncoding = System.Text.Encoding.UTF8

Dim pdf = renderer.RenderHtmlAsPdf(html_with_utf_8)
pdf.SaveAs("Unicode.pdf")
VB   C#

Este es el archivo que produjo el código:

Para asegurarse de obtener una codificación perfecta de su HTML como PDF, hay dos lugares en los que puede especificar el conjunto de caracteres deseado.

  • En ChromePdfRenderer.RenderingOptions usando System.Text.Encoding.UTF8
  • En su cabecera HTML:
<html>
        <head>
            <meta charset = 'utf-8'>
        </head>
        <body>
            こんにちは世界
        </body>
</html>
<html>
        <head>
            <meta charset = 'utf-8'>
        </head>
        <body>
            こんにちは世界
        </body>
</html>
HTML

Más sobre lenguas internacionales

IronPDF soporta HTML-To-PDF en idiomas de escritura no latina incluyendo: Chino, Japonés, Árabe, Hebreo, Ruso, Tailandés, Japonés y todos los idiomas internacionales soportados por Unicode incluyendo documentos en idiomas mixtos.

Hay que tener en cuenta dos cosas cuando se trabaja con lenguas internacionales:

Tipos de letra

Debe instalar en su servidor un tipo de letra compatible con su juego de caracteres. Normalmente se instalan automáticamente en los servidores web modernos, pero los servidores más antiguos pueden haber sido instalados con versiones anteriores de algunas fuentes como Arial que pueden no tener soporte completo UTF-8.

Una solución alternativa es especificar una fuente web en su CSS como la que proporciona Google Fonts. Más información aquí.

Codificación de entrada

Es posible que tenga que especificar la codificación de entrada de su documento para renderizarlo correctamente. Puede hacerlo de las siguientes maneras:

Añadir una etiqueta HTML "Meta Charset", por ejemplo

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
HTML