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

Chaknith related to Comment gérer les polices de caractères dans les PDF
Chaknith Bin
décembre 14, 2023
Mise à jour janvier 8, 2025
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

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 un type de police, une taille, un poids et un style spécifiques (comme régulier, gras, italique, etc.) de 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 peut être accédée 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
$vbLabelText   $csharpLabel

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 ["SpecialFontName"]. 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")
$vbLabelText   $csharpLabel

Ajouter une police

Utilisez la méthode Add pour ajouter à la fois une police standard et un fichier de police sous forme de données octet. La méthode Add qui accepte uniquement le nom de la police n'accepte que l'une des 14 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")
$vbLabelText   $csharpLabel

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

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. Utilisez la méthode Unembed pour y parvenir.

: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

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 certains cas rares, le visuel résultant peut ne pas être parfaitement adapté. C'est une limitation actuelle de la méthode de remplacement de la police.

: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

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 (selon la norme des documents PDF) d'être disponibles lors de la manipulation 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.

Carte pour Courier

  • StandardFont.Courier

    • Courrier

    • CourierNew

    • CourierNewPSMT

    • CourierStd

    Carte vers Courier-Bold

  • StandardFont.CourierBold

    • Courier, gras

    • Courier-Bold

    • CourierBold

    • CourierNew,Bold

    • CourierNew-Bold

    • CourierNewBold

    • CourierNewPS-BoldMT

    • CourierStd-Bold

    Map à 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

    Cartographier vers Helvetica

  • StandardFont.Helvetica

    • Arial

    • ArialMT

    • Helvetica

    Carte vers Helvetica-Bold

  • StandardFont.HelveticaBold

    • Arial, gras

    • Arial-Bold

    • Arial-BoldMT

    • ArialBold

    • ArialMT,gras

    • ArialRoundedMTBold

    • Helvetica,Bold

    • Helvetica-Bold

    • HelveticaBold

    Mapper vers Helvetica-Oblique

  • StandardFont.HelveticaOblique

    • Arial,Italique

    • Arial-Italique

    • Arial-ItalicMT

    • ArialItalique

    • ArialMT,Italique

    • Helvetica,Italic

    • Helvetica-Italic

    • Helvetica-Oblique

    • HelveticaItalic

    Carte vers 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

    Carte vers Times-Bold

  • StandardFont.TimesBold

    • Times-Bold

    • TimesBold

    • TimesNewRoman,Bold

    • TimesNewRoman-Bold

    • TimesNewRomanBold

    • TimesNewRomanPS-Bold

    • TimesNewRomanPS-BoldMT

    • TimesNewRomanPSMT,Bold

    Cartographier en Times-Italic

  • StandardFont.TimesOblique

    • Times-Italic

    • TimesItalic

    • TimesNewRoman,Italique

    • TimesNewRoman-Italic

    • TimesNewRomanItalic

    • TimesNewRomanPS-Italic

    • TimesNewRomanPS-ItalicMT

    • TimesNewRomanPSMT,Italique

    Carte vers Times-BoldItalic

  • StandardFont.TimesBoldOblique

    • Times-BoldItalic

    • TimesBoldItalic

    • TimesNewRoman,BoldItalic

    • TimesNewRoman-BoldItalic

    • TimesNewRomanBoldItalic

    • TimesNewRomanPS-BoldItalic

    • TimesNewRomanPS-BoldItalicMT

    • TimesNewRomanPSMT,BoldItalic

    Carte vers Symbole

  • StandardFont.Symbol

    • Symbole

    • SymbolMT

    Carte vers ZapfDingbats

  • StandardFont.Dingbats

    • ZapfDingbats
Chaknith related to Cartographie des polices standard
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.