Polices personnalisées dans les champs de formulaire
Lors du style des champs de formulaire interactifs, la méthode SetFont() ne peut pas appliquer une police personnalisée. Il n'y a pas d'erreur ; la demande de police est simplement ignorée, laissant le champ dans son apparence par défaut.
Le style de police personnalisé n'est pas encore pris en charge via SetFont(). Jusqu'à ce que cela soit disponible dans une future version, vous pouvez définir la police, la taille et la couleur directement via la propriété DefaultAppearance du champ, qui prend une chaîne d'instructions de dessin PDF brutes.
Solution
1. Définir manuellement la chaîne d'apparence
Chargez le document, récupérez le champ et assignez une chaîne DefaultAppearance qui décrit la police, la taille et la couleur :
var pdf = PdfDocument.FromFile("FilledForm.pdf");
TextFormField field = pdf.Form[0] as TextFormField;
// Manually define the appearance string:
// Format: /{FontName}-{Weight} {FontSize} Tf {R} {G} {B} rg
field.DefaultAppearance = "/AdobeThai-Bold 15 Tf 0.898 0.133 0.215 rg";
field.Value = "This is size 15";
pdf.SaveAs("customformfieldvalue15.pdf");
var pdf = PdfDocument.FromFile("FilledForm.pdf");
TextFormField field = pdf.Form[0] as TextFormField;
// Manually define the appearance string:
// Format: /{FontName}-{Weight} {FontSize} Tf {R} {G} {B} rg
field.DefaultAppearance = "/AdobeThai-Bold 15 Tf 0.898 0.133 0.215 rg";
field.Value = "This is size 15";
pdf.SaveAs("customformfieldvalue15.pdf");
Imports System
Dim pdf = PdfDocument.FromFile("FilledForm.pdf")
Dim field As TextFormField = TryCast(pdf.Form(0), TextFormField)
' Manually define the appearance string:
' Format: /{FontName}-{Weight} {FontSize} Tf {R} {G} {B} rg
field.DefaultAppearance = "/AdobeThai-Bold 15 Tf 0.898 0.133 0.215 rg"
field.Value = "This is size 15"
pdf.SaveAs("customformfieldvalue15.pdf")
La chaîne est analysée en tant qu'opérateurs de texte PDF, donc la police que vous nommez doit être installée sur la machine rendant le document.
2. Lire la chaîne d'apparence
Chaque jeton dans la chaîne correspond à une partie du style du champ :
/AdobeThai-Bold: le nom et le poids de la police. Cette police doit être installée sur le système.15 Tf: la taille de la police, ici 15 pt.0.898 0.133 0.215 rg: la couleur RVB, dans ce cas une teinte rougeâtre.
Cela vous donne un contrôle total sur la police et la couleur du texte du champ de formulaire jusqu'à ce que la prise en charge de SetFont() arrive dans une version ultérieure d'IronPDF.

