Cómo gestionar las fuentes en PDF

Chaknith related to Cómo gestionar las fuentes en PDF
Chaknith Bin
14 de diciembre, 2023
Actualizado 8 de enero, 2025
Compartir:
This article was translated from English: Does it need improvement?
Translated
View the article in English

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ífico (como regular, negrita, cursiva, etc.) del 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.

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. La propiedad Fonts se puede acceder directamente 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
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

Añadir fuente

Utilice el método Add para agregar tanto la fuente estándar como el archivo de fuente como datos en bytes. El método Add que acepta solo el nombre de la fuente solo acepta una de las 14 fuentes estándar. Si se añade una fuente estándar, no se incrustará, porque ya se garantiza que la fuente estándar está 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")
$vbLabelText   $csharpLabel

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 System.Linq;

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

// 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 System.Linq

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

' 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)
$vbLabelText   $csharpLabel

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 archivo del documento PDF. Utilice el método Unembed para lograr esto.

: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()
$vbLabelText   $csharpLabel

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.

[{w:(En algunos casos raros, el resultado visual puede no ser una implementación perfecta. Esta es una limitación actual del método de reemplazo de fuente.

: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)
$vbLabelText   $csharpLabel

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 que están garantizadas (según el estándar del documento PDF) para estar disponibles al trabajar con un documento PDF.

  • Correo
  • Courier-Bold
  • Courier-Oblique
  • 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 a Courier

  • StandardFont.Courier

    • Correo

    • CorreoNuevo

    • CorreoNuevoPSMT

    • CourierStd

    Mapa a Courier-Bold

  • StandardFont.CourierBold

    • Courier,Negrita

    • Courier-Bold

    • CourierBold

    • CourierNew,Negrita

    • CourierNew-Bold

    • CourierNewBold

    • CourierNewPS-BoldMT

    • CourierStd-Bold

    Mapear a Courier-Oblique

  • StandardFont.CourierOblique

    • Courier, cursiva

    • Courier-Oblique

    • CourierItalic

    • CourierNew,Italic

    • CourierNew-Italic

    • CourierNewItalic

    • CourierNewPS-ItalicMT

    • CourierStd-Oblique

    Mapa a Courier-BoldOblique

  • StandardFont.CourierBoldOblique

    • Courier,NegritaItalica

    • Courier-BoldOblique

    • CourierBoldItalic

    • CourierNew,BoldItalic

    • CourierNew-BoldItalic

    • CourierNewBoldItalic

    • CourierNewPS-BoldItalicMT

    • CourierStd-BoldOblique

    Mapear a Helvetica

  • StandardFont.Helvetica

    • Arial

    • ArialMT

    • Helvética

    Mapa a Helvetica-Bold

  • StandardFont.HelveticaBold

    • Arial,Negrita

    • Arial-Bold

    • Arial-BoldMT

    • ArialBold

    • ArialMT,Negrita

    • ArialRoundedMTBold

    • Helvetica,Negrita

    • Helvetica-Bold

    • HelveticaBold

    Mapear a Helvetica-Oblique

  • StandardFont.HelveticaOblique

    • Arial, cursiva

    • Arial-Italic

    • 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

    Mapear 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

    Mapear a Times-Italic

  • StandardFont.TimesOblique

    • Times-Italic

    • TimesItalic

    • TimesNewRoman,Cursiva

    • TimesNewRoman-Italic

    • TimesNewRomanItalic

    • TimesNewRomanPS-Italic

    • TimesNewRomanPS-ItalicMT

    • TimesNewRomanPSMT,Cursiva

    Mapear a Times-BoldItalic

  • StandardFont.TimesBoldOblique

    • Times-BoldItalic

    • TimesBoldItalic

    • TimesNewRoman,NegritaItalica

    • TimesNewRoman-BoldItalic

    • TimesNewRomanBoldItalic

    • TimesNewRomanPS-BoldItalic

    • TimesNewRomanPS-BoldItalicMT

    • TimesNewRomanPSMT,BoldItalic

    Mapa a Símbolo

  • StandardFont.Symbol

    • Símbolo

    • SímboloMT

    Mapear a ZapfDingbats

  • StandardFont.Dingbats

    • ZapfDingbats
Chaknith related to Asignación de fuentes estándar
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.