Cómo gestionar las fuentes en PDF

por Chaknith

Una fuente es un conjunto de caracteres, símbolos y glifos con un estilo y diseño coherentes. Representa un tipo de letra, tamaño, peso y estilo específicos. (como normal, negrita, cursiva, etc.) de texto. Las fuentes se utilizan en tipografía para mostrar el texto de forma visualmente atractiva y coherente.

IronPDF proporciona una forma cómoda de gestionar las fuentes, ofreciendo funcionalidades como encontrar fuentes, obtener fuentes, incrustar fuentes, desincrustar fuentes y sustituir fuentes.

Biblioteca NuGet C# para PDF

Instalar con NuGet

Install-Package IronPdf
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Buscar y recuperar fuentes

Recuperar fuente

Al acceder a la propiedad Fonts se devolverá el objeto PdfFontCollection, que contiene la lista de todas las fuentes del documento. Se puede acceder directamente a la propiedad Fonts iterando sobre el objeto PdfFontCollection.

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-retrieve-font.cs
using IronPdf;
using IronPdf.Fonts;
using System.Collections.Generic;

//  Importar PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

//  Recuperar fuente
PdfFontCollection fonts = pdf.Fonts;
Imports IronPdf
Imports IronPdf.Fonts
Imports System.Collections.Generic

'  Importar PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

'  Recuperar fuente
Private fonts As PdfFontCollection = pdf.Fonts
VB   C#

Buscar fuente

Encontrar una fuente específica es sencillo con IronPdf. Utilizando el objeto PdfFontCollection, podemos especificar el nombre de la fuente como una cadena encerrada entre corchetes. Por ejemplo Fuentes ["SpecialFontName"]. Esto devolverá un objeto PdfFont que podemos utilizar para inspeccionar propiedades y realizar métodos adicionales.

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-find-font.cs
using IronPdf;
using IronPdf.Fonts;
using System.Collections.Generic;
using System.Linq;

//  Importar PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

//  Buscar fuente
PdfFont font = pdf.Fonts["SpecialFontName"];
Imports IronPdf
Imports IronPdf.Fonts
Imports System.Collections.Generic
Imports System.Linq

'  Importar PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

'  Buscar fuente
Private font As PdfFont = pdf.Fonts("SpecialFontName")
VB   C#

Añadir fuente

Utilice el método Add para añadir tanto la fuente stardand como el archivo de fuentes como datos de bytes. El método Add que acepta el nombre de la fuente sólo acepta uno de los métodos 14 fuentes estándar. Añadir una fuente estándar no la incrustará, porque la fuente estándar ya garantiza estar disponible en el sistema operativo.

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-add-font.cs
using IronPdf;
using IronPdf.Fonts;

//  Importar PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

//  Añadir fuente
pdf.Fonts.Add("Helvetica");
Imports IronPdf
Imports IronPdf.Fonts

'  Importar PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

'  Añadir fuente
pdf.Fonts.Add("Helvetica")
VB   C#

Incrustar fuente

Incrustar una fuente significa incluir los datos del flujo de bytes de una fuente en el propio documento PDF. De este modo, no es necesario que la fuente esté instalada en el sistema para ver correctamente el documento PDF. Aunque esto suele aumentar el tamaño del archivo del documento PDF, es beneficioso para la coherencia visual sin el requisito adicional de instalar la fuente.

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-embed-font.cs
using IronPdf;
using IronPdf.Fonts;
using System.Linq;

//  Importar PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

//  Seleccione la fuente que desea incrustar
PdfFont targetFont = pdf.Fonts["MyCustomFont"];

//  Añadir la fuente
byte[] fontData = System.IO.File.ReadAllBytes("dir/to/font.ttf");
pdf.Fonts.Add(fontData);

//  Incrustar la fuente
pdf.Fonts.Last().Embed(fontData);
Imports IronPdf
Imports IronPdf.Fonts
Imports System.Linq

'  Importar PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

'  Seleccione la fuente que desea incrustar
Private targetFont As PdfFont = pdf.Fonts("MyCustomFont")

'  Añadir la fuente
Private fontData() As Byte = System.IO.File.ReadAllBytes("dir/to/font.ttf")
pdf.Fonts.Add(fontData)

'  Incrustar la fuente
pdf.Fonts.Last().Embed(fontData)
VB   C#

Fuente Unembed

Desincrustar una fuente significa eliminar los datos de flujo de bytes incrustados de la fuente incluida en un documento PDF. El objetivo es reducir el tamaño del documento PDF. Utilice el método Unembed para conseguirlo.

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-unembed-font.cs
using IronPdf;
using IronPdf.Fonts;

//  Importar PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

//  Obtener fuentes
PdfFontCollection fonts = pdf.Fonts;

//  Desincrustar una fuente
pdf.Fonts[0].Unembed();
Imports IronPdf
Imports IronPdf.Fonts

'  Importar PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

'  Obtener fuentes
Private fonts As PdfFontCollection = pdf.Fonts

'  Desincrustar una fuente
pdf.Fonts(0).Unembed()
VB   C#

Sustituir fuente

La operación de sustitución de fuentes conservará la estructura de datos de la fuente original, como el estilo y la codificación de caracteres, dentro de un documento PDF, pero la sustituirá por una nueva fuente especificada. Los usuarios tienen que asegurarse de que la nueva fuente se alinea bien con la fuente original.

Antes de seguir
En algunos casos excepcionales, el visual resultante puede no ajustarse perfectamente. Esta es una limitación actual del método de sustitución de fuentes.

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-replace-font.cs
using IronPdf;
using IronPdf.Fonts;
using System.Linq;

//  Importar PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

byte[] fontData = System.IO.File.ReadAllBytes("dir/to/font.ttf");
//  Obtener y sustituir Fuente
pdf.Fonts["Courier"].ReplaceWith(fontData);
Imports IronPdf
Imports IronPdf.Fonts
Imports System.Linq

'  Importar PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

Private fontData() As Byte = System.IO.File.ReadAllBytes("dir/to/font.ttf")
'  Obtener y sustituir Fuente
pdf.Fonts("Courier").ReplaceWith(fontData)
VB   C#

Fuentes estándar

Las 14 fuentes estándar de PDF, también conocidas como "fuentes base 14" o "fuentes estándar de tipo 1", forman un conjunto de fuentes que son ampliamente compatibles con los visores de PDF y no necesitan estar incrustadas en el documento. Las fuentes estándar definen 14 fuentes garantizadas (según el estándar de documentos PDF) al trabajar con un documento PDF.

  • Correo
  • Courier-Negrita
  • Correo oblicuo
  • Courier-BoldOblique
  • Helvética
  • Helvetica-Bold
  • Helvética-Oblique
  • Helvetica-BoldOblique
  • Times-Roman
  • Times-Bold
  • Times-Italic
  • Times-BoldItalic
  • Símbolo
  • ZapfDingbats

Asignación de fuentes estándar

Para mayor comodidad a la hora de referirse a las fuentes estándar, varios nombres de cadena apuntan a la misma fuente.

Mapa al Correo

  • StandardFont.Courier

    • Correo
    • CorreoNuevo
    • CorreoNuevoPSMT
    • CourierStd

    Mapa a Courier-Bold

  • StandardFont.CourierBold

    • Courier,Negrita
    • Courier-Negrita
    • CourierBold
    • CourierNew,Negrita
    • CourierNuevo-Negrita
    • CourierNuevaNegrita
    • CourierNewPS-BoldMT
    • CourierNegrita

    Mapa a Courier-Oblique

  • StandardFont.CourierOblique

    • Courier, cursiva
    • Correo oblicuo
    • CourierItalic
    • CourierNew,Italic
    • CourierNuevo-Itálico
    • CourierNuevoItalico
    • CourierNewPS-ItalicMT
    • CourierStd-Oblique

    Mapa a Courier-BoldOblique

  • StandardFont.CourierBoldOblique

    • Courier,NegritaItalica
    • Courier-BoldOblique
    • CourierBoldItalic
    • CourierNew,BoldItalic
    • CourierNew-BoldItalic
    • CourierNewBoldItalic
    • CourierNewPS-BoldItalicMT
    • CourierStd-BoldOblique

    Mapa a Helvetica

  • StandardFont.Helvetica

    • Arial
    • ArialMT
    • Helvética

    Mapa a Helvetica-Bold

  • StandardFont.HelveticaBold

    • Arial,Negrita
    • Arial-Negrita
    • Arial-BoldMT
    • ArialNegrita
    • ArialMT,Negrita
    • ArialRoundedMTBold
    • Helvetica,Negrita
    • Helvetica-Bold
    • HelveticaBold

    Mapa a Helvetica-Oblique

  • StandardFont.HelveticaOblique

    • Arial, cursiva
    • Arial-Itálico
    • Arial-ItalicMT
    • ArialItalic
    • ArialMT,Cursiva
    • Helvetica,Italic
    • Helvética-Itálica
    • Helvética-Oblique
    • HelveticaItalic

    Mapa a Helvetica-BoldOblique

  • StandardFont.HelveticaBoldOblique

    • Arial,BoldItalic
    • Arial-BoldItalic
    • Arial-BoldItalicMT
    • ArialBoldItalic
    • ArialMT,BoldItalic
    • Helvetica,BoldItalic
    • Helvetica-BoldItalic
    • Helvetica-BoldOblique
    • HelveticaBoldItalic

    Mapa a Times-Roman

  • StandardFont.Times

    • Times-Roman
    • TimesNewRoman
    • TimesNewRomanPS
    • TimesNewRomanPSMT

    Mapa a Times-Bold

  • StandardFont.TimesBold

    • Times-Bold
    • TimesBold
    • TimesNewRoman,Negrita
    • TimesNewRoman-Bold
    • TimesNewRomanBold
    • TimesNewRomanPS-Bold
    • TimesNewRomanPS-BoldMT
    • TimesNewRomanPSMT,Negrita

    Mapa de Times-Italic

  • StandardFont.TimesOblique

    • Times-Italic
    • TimesItalic
    • TimesNewRoman,Cursiva
    • TimesNewRoman-Italic
    • TimesNewRomanItalic
    • TimesNewRomanPS-Italic
    • TimesNewRomanPS-ItalicMT
    • TimesNewRomanPSMT,Cursiva

    Mapa a Times-BoldItalic

  • StandardFont.TimesBoldOblique

    • Times-BoldItalic
    • TimesBoldItalic
    • TimesNewRoman,NegritaItalica
    • TimesNewRoman-BoldItalic
    • TimesNewRomanBoldItalic
    • TimesNewRomanPS-BoldItalic
    • TimesNewRomanPS-BoldItalicMT
    • TimesNewRomanPSMT,BoldItalic

    **Mapa del símbolo

  • StandardFont.Symbol

    • Símbolo
    • SímboloMT

    Mapa a ZapfDingbats

  • StandardFont.Dingbats
    • ZapfDingbats

Chaknith Bin

Ingeniero de software

Chaknith es el Sherlock Holmes de los desarrolladores. La primera vez que se le ocurrió que podría tener futuro en la ingeniería de software fue cuando hacía retos de código por diversión. Su trabajo se centra en IronXL e IronBarcode, pero se enorgullece de ayudar a los clientes con todos los productos. Chaknith aprovecha sus conocimientos, adquiridos hablando directamente con los clientes, para ayudar a mejorar los propios productos. Sus comentarios anecdóticos van más allá de los tickets de Jira y apoyan el desarrollo de productos, la documentación y el marketing, para mejorar la experiencia general del cliente.Cuando no está en la oficina, se le puede encontrar aprendiendo sobre aprendizaje automático, codificación y senderismo.