Cómo gestionar las fuentes en PDF

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

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;

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

// Retreive font
PdfFontCollection fonts = pdf.Fonts;
Imports IronPdf
Imports IronPdf.Fonts
Imports System.Collections.Generic

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

' Retreive font
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;

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

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

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

' Find font
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;

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

// Add font
pdf.Fonts.Add("Helvetica");
Imports IronPdf
Imports IronPdf.Fonts

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

' Add font
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;

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

// Select which font to embed
PdfFont targetFont = pdf.Fonts["MyCustomFont"];

// Add the font
byte[] fontData = System.IO.File.ReadAllBytes("dir/to/font.ttf");
pdf.Fonts.Add(fontData);

// Embed the font
pdf.Fonts.Last().Embed(fontData);
Imports IronPdf
Imports IronPdf.Fonts
Imports System.Linq

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

' Select which font to embed
Private targetFont As PdfFont = pdf.Fonts("MyCustomFont")

' Add the font
Private fontData() As Byte = System.IO.File.ReadAllBytes("dir/to/font.ttf")
pdf.Fonts.Add(fontData)

' Embed the font
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;

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

// Get fonts
PdfFontCollection fonts = pdf.Fonts;

// Unembed a font
pdf.Fonts[0].Unembed();
Imports IronPdf
Imports IronPdf.Fonts

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

' Get fonts
Private fonts As PdfFontCollection = pdf.Fonts

' Unembed a font
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 proceder
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;

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

byte[] fontData = System.IO.File.ReadAllBytes("dir/to/font.ttf");
// Get and replace Font
pdf.Fonts["Courier"].ReplaceWith(fontData);
Imports IronPdf
Imports IronPdf.Fonts
Imports System.Linq

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

Private fontData() As Byte = System.IO.File.ReadAllBytes("dir/to/font.ttf")
' Get and replace Font
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.