Comment gérer les polices de caractères dans les PDF

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

par Chaknith

Une police de caractères est un ensemble de caractères, de symboles et de glyphes dont le style et la conception sont cohérents. Il représente une police de caractères, une taille, un poids et un style spécifiques(tels que normal, gras, italique, etc.) du texte. Les polices de caractères sont utilisées en typographie pour présenter le texte d'une manière visuellement attrayante et cohérente.

IronPDF offre un moyen pratique de gérer les polices, en proposant des fonctionnalités telles que la recherche de polices, l'obtention de polices, l'intégration de polices, la désintégration de polices et le remplacement de polices.

Recherche et récupération de polices

Récupérer une police

L'accès à la propriété Fonts renvoie l'objet PdfFontCollection, qui contient la liste de toutes les polices du document. La propriété Fonts est accessible directement en itérant sur l'objet 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#

Trouver une police

Avec IronPDF, il est facile de trouver une police de caractères spécifique. En utilisant l'objet PdfFontCollection, nous pouvons spécifier le nom de la police sous la forme d'une chaîne de caractères entre crochets. Par exemple : Polices["Nom de la police spéciale"]. Cela renvoie un objet PdfFont que nous pouvons utiliser pour inspecter les propriétés et exécuter des méthodes supplémentaires.

: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#

Ajouter une police

Utilisez la méthode Add pour ajouter à la fois la police standard et le fichier de police en tant que données d'octets. La méthode Add qui accepte le nom de la police n'accepte que l'une des options suivantes14 polices standard. L'ajout d'une police standard ne l'intégrera pas, car la police standard est déjà garantie comme étant disponible sur le système d'exploitation.

: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#

Intégrer une police

Intégrer une police signifie inclure les données du flux d'octets de la police dans le document PDF lui-même. Ainsi, il n'est pas nécessaire d'installer la police sur le système pour visualiser correctement le document PDF. Bien que cela augmente généralement la taille du fichier du document PDF, cela permet d'obtenir une cohérence visuelle sans avoir à installer la police.

: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#

Police Unembed

Désimbriquer une police signifie supprimer les données de flux d'octets intégrées de la police incluse dans un document PDF. L'objectif est de réduire la taille du fichier du document PDF. Pour ce faire, utilisez la méthode Unembed.

: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#

Remplacer la police

L'opération de remplacement des polices préserve la structure des données de la police d'origine, comme le style et le codage des caractères, à l'intérieur d'un document PDF, mais la remplace par une nouvelle police spécifiée. Les utilisateurs doivent s'assurer que la nouvelle police s'aligne bien sur la police d'origine.

[{w :(Dans de rares cas, le visuel obtenu peut ne pas être parfaitement adapté. Il s'agit d'une limitation actuelle de la méthode de remplacement des polices.)}]

: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#

Polices standard

Les 14 polices standard du PDF, également appelées "polices de base 14" ou "polices standard de type 1", constituent un ensemble de polices largement prises en charge par les visionneuses PDF et ne doivent pas être incorporées dans le document. Les polices standard définissent 14 polices qui sont garanties(conformément à la norme du document PDF) pour être disponible lors de l'utilisation d'un document PDF.

  • Courrier
  • Courier-Bold
  • Courier-Oblique
  • Courier-BoldOblique
  • Helvetica
  • Helvetica-Bold
  • Helvetica-Oblique
  • Helvetica-BoldOblique
  • Times-Roman
  • Times-Bold
  • Times-Italic
  • Times-BoldItalic
  • Symbole
  • ZapfDingbats

Cartographie des polices standard

Pour des raisons de commodité, lorsque l'on se réfère aux polices standard, plusieurs noms de chaînes renvoient à la même police.

Map to Courier

  • StandardFont.Courier

    • Courrier

    • CourierNew

    • CourierNewPSMT

    • CourierStd

    Map to Courier-Bold (en anglais)

  • StandardFont.CourierBold

    • Courier, gras

    • Courier-Bold

    • CourierBold

    • CourierNew,Bold

    • CourierNew-Bold

    • CourierNewBold

    • CourierNewPS-BoldMT

    • CourierStd-Bold

    Carte vers Courier-Oblique

  • StandardFont.CourierOblique

    • Courier,Italique

    • Courier-Oblique

    • CourierItalique

    • CourierNew,Italic

    • CourierNew-Italic

    • CourierNewItalic

    • CourierNewPS-ItalicMT

    • CourierStd-Oblique

    Carte vers Courier-BoldOblique

  • StandardFont.CourierBoldOblique

    • Courier,BoldItalic

    • Courier-BoldOblique

    • CourierBoldItalic

    • CourierNew,BoldItalic

    • CourierNew-BoldItalic

    • CourierNewBoldItalic

    • CourierNewPS-BoldItalicMT

    • CourierStd-BoldOblique

    Carte vers Helvetica

  • StandardFont.Helvetica

    • Arial

    • ArialMT

    • Helvetica

    Map to Helvetica-Bold (en anglais)

  • StandardFont.HelveticaBold

    • Arial, gras

    • Arial-Bold

    • Arial-BoldMT

    • ArialBold

    • ArialMT,gras

    • ArialRoundedMTBold

    • Helvetica,Bold

    • Helvetica-Bold

    • HelveticaBold

    Map to Helvetica-Oblique (en anglais)

  • StandardFont.HelveticaOblique

    • Arial,Italique

    • Arial-Italique

    • Arial-ItalicMT

    • ArialItalique

    • ArialMT,Italique

    • Helvetica,Italic

    • Helvetica-Italic

    • Helvetica-Oblique

    • HelveticaItalic

    Map to Helvetica-BoldOblique *Map to Helvetica-BoldOblique***

  • StandardFont.HelveticaBoldOblique

    • Arial,BoldItalic

    • Arial-BoldItalic

    • Arial-BoldItalicMT

    • ArialBoldItalic

    • ArialMT,BoldItalic

    • Helvetica,BoldItalic

    • Helvetica-BoldItalic

    • Helvetica-BoldOblique

    • HelveticaBoldItalic

    Carte vers Times-Roman

  • StandardFont.Times

    • Times-Roman

    • TimesNewRoman

    • TimesNewRomanPS

    • TimesNewRomanPSMT

    Map to Times-Bold (en anglais)

  • StandardFont.TimesBold

    • Times-Bold

    • TimesBold

    • TimesNewRoman,Bold

    • TimesNewRoman-Bold

    • TimesNewRomanBold

    • TimesNewRomanPS-Bold

    • TimesNewRomanPS-BoldMT

    • TimesNewRomanPSMT,Bold

    Carte vers Times-Italic

  • StandardFont.TimesOblique

    • Times-Italic

    • TimesItalic

    • TimesNewRoman,Italique

    • TimesNewRoman-Italic

    • TimesNewRomanItalic

    • TimesNewRomanPS-Italic

    • TimesNewRomanPS-ItalicMT

    • TimesNewRomanPSMT,Italique

    Mapper sur Times-BoldItalic

  • StandardFont.TimesBoldOblique

    • Times-BoldItalic

    • TimesBoldItalic

    • TimesNewRoman,BoldItalic

    • TimesNewRoman-BoldItalic

    • TimesNewRomanBoldItalic

    • TimesNewRomanPS-BoldItalic

    • TimesNewRomanPS-BoldItalicMT

    • TimesNewRomanPSMT,BoldItalic

    Map to Symbol

  • StandardFont.Symbol

    • Symbole

    • SymbolMT

    Carte vers ZapfDingbats

  • StandardFont.Dingbats

    • ZapfDingbats
Chaknith related to Cartographie des polices standard

Chaknith Bin

Ingénieur logiciel

Chaknith est le Sherlock Holmes des développeurs. C'est en s'amusant à relever des défis de code qu'il s'est rendu compte pour la première fois qu'il pourrait avoir un avenir dans le domaine de l'ingénierie logicielle. Il se concentre sur IronXL et IronBarcode, mais il est fier d'aider les clients avec chaque produit. Chaknith tire parti des connaissances qu'il a acquises en discutant directement avec les clients pour améliorer les produits eux-mêmes. Ses commentaires anecdotiques vont au-delà des tickets Jira et soutiennent le développement de produits, la documentation et le marketing, afin d'améliorer l'expérience globale des clients.Quand il n'est pas au bureau, on peut le trouver en train d'apprendre sur l'apprentissage automatique, le codage et la randonnée.