Obtenez la largeur du texte de manière dynamique

Dans ce didacticiel, nous expliquerons comment utiliser Aspose.PDF pour .NET pour mesurer dynamiquement la largeur du texte en C#. Cela peut être utile lorsque vous devez déterminer la taille d’une chaîne de texte avant de l’afficher sur un document PDF. Nous vous guiderons étape par étape à travers le code source C# fourni.

Conditions préalables

Avant de commencer, assurez-vous d’avoir les éléments suivants :

  • Aspose.PDF pour la bibliothèque .NET installée.
  • Visual Studio ou tout autre environnement de développement C#.

Étape 1 : Définir le répertoire des documents

// Le chemin d'accès au répertoire des documents.
string dataDir = "YOUR DOCUMENT DIRECTORY";

Remplacer"YOUR DOCUMENT DIRECTORY"avec le chemin d’accès au répertoire où se trouvent vos documents. Ceci sera utilisé pour stocker tous les fichiers PDF générés.

Étape 2 : Trouver la police

Aspose.Pdf.Text.Font font = FontRepository.FindFont("Arial");

Le code ci-dessus trouve la police Arial en utilisant leFindFont méthode de laFontRepository classe. Si vous souhaitez utiliser une police différente, remplacez"Arial" avec le nom de police souhaité.

Étape 3 : définir l’état du texte

TextState ts = new TextState();
ts.Font = font;
ts.FontSize = 14;

Ici, nous créons un nouveauTextState objet et définir ses propriétés. Nous attribuons la police trouvée précédemment (font) et définissez la taille de police sur 14. Ajustez la taille de police selon vos besoins.

Étape 4 : Mesurez la largeur du texte

if (Math.Abs(font.MeasureString("A", 14) - 9.337) > 0.001)
	Console.WriteLine("Unexpected font string measure!");

if (Math.Abs(ts.MeasureString("z") - 7.0) > 0.001)
	Console.WriteLine("Unexpected font string measure!");

for (char c = 'A'; c <= 'z'; c++)
{
	double fnMeasure = font.MeasureString(c.ToString(), 14);
	double tsMeasure = ts.MeasureString(c.ToString());
	if (Math.Abs(fnMeasure - tsMeasure) > 0.001)
		Console.WriteLine("Font and state string measuring doesn't match!");
}

Le code ci-dessus montre comment mesurer la largeur du texte en utilisant directement la police (font.MeasureString) et l’état du texte (ts.MeasureString). Il comprend des contrôles de validation pour garantir l’exactitude des mesures.

Exemple de code source pour obtenir dynamiquement la largeur du texte à l’aide d’Aspose.PDF pour .NET

// Le chemin d'accès au répertoire des documents.
string dataDir = "YOUR DOCUMENT DIRECTORY";
Aspose.Pdf.Text.Font font = FontRepository.FindFont("Arial");
TextState ts = new TextState();
ts.Font = font;
ts.FontSize = 14;
if (Math.Abs(font.MeasureString("A", 14) - 9.337) > 0.001)
	Console.WriteLine("Unexpected font string measure!");
if (Math.Abs(ts.MeasureString("z") - 7.0) > 0.001)
	Console.WriteLine("Unexpected font string measure!");
for (char c = 'A'; c <= 'z'; c++)
{
	double fnMeasure = font.MeasureString(c.ToString(), 14);
	double tsMeasure = ts.MeasureString(c.ToString());
	if (Math.Abs(fnMeasure - tsMeasure) > 0.001)
		Console.WriteLine("Font and state string measuring doesn't match!");
}

Conclusion

Vous avez appris à utiliser Aspose.PDF pour .NET pour mesurer dynamiquement la largeur du texte en C#. En suivant les étapes décrites dans ce didacticiel, vous pouvez déterminer avec précision la largeur des chaînes de texte avant de les afficher dans un document PDF.

FAQ

Q : Quel est l’objectif du didacticiel « Obtenir dynamiquement la largeur du texte » ?

R : Le didacticiel « Obtenir dynamiquement la largeur du texte » explique comment utiliser Aspose.PDF pour .NET pour mesurer dynamiquement la largeur du texte en C#. Ceci est particulièrement utile lorsque vous devez déterminer la taille d’une chaîne de texte avant de l’afficher sur un document PDF.

Q : Pourquoi devrais-je mesurer la largeur du texte de manière dynamique ?

R : La mesure dynamique de la largeur du texte vous permet de déterminer avec précision l’espace requis pour le texte avant de le restituer. Ceci est crucial pour la conception de la mise en page, l’alignement et pour garantir que le texte s’adapte correctement aux zones désignées de votre document PDF.

Q : Comment puis-je trouver la police à utiliser pour la mesure du texte ?

R : Dans le didacticiel, vous utilisez leFontRepository.FindFont méthode pour localiser la police souhaitée. L’exemple utilise la police Arial, mais vous pouvez remplacer"Arial" avec le nom de toute autre police que vous souhaitez utiliser.

Q : Quel est le but duTextState class?

R : LeTextState La classe est utilisée pour définir les propriétés de formatage du texte telles que la police et la taille de la police. Il permet de définir la manière dont le texte sera présenté.

Q : Comment mesurer la largeur du texte à l’aide de la police et de l’état du texte ?

R : Le didacticiel montre comment mesurer la largeur du texte en utilisant directement la police (font.MeasureString) et l’état du texte (ts.MeasureString). Il comprend des contrôles de validation pour garantir l’exactitude des mesures.

Q : Puis-je utiliser cette technique pour différentes tailles et styles de police ?

R : Oui, vous pouvez modifier la taille de la police et d’autres propriétés dans leTextState objet pour mesurer la largeur du texte pour différentes tailles et styles.

Q : Sur quoi insiste la conclusion du didacticiel ?

R : La conclusion résume le contenu du didacticiel et souligne que vous avez appris à mesurer dynamiquement la largeur du texte dans un document PDF à l’aide d’Aspose.PDF pour .NET et C#. Ces connaissances peuvent contribuer à améliorer la conception de votre mise en page PDF et la précision du rendu.