Le format PDF est largement utilisé pour générer divers types de documents tels que des factures, des rapports financiers, des CV, etc. Dans le monde de l’automatisation, les documents PDF sont générés et manipulés à partir d’applications Web ou de bureau. Ainsi, dans certains cas, vous devrez peut-être ajouter du texte aux fichiers PDF existants par programme. Conformément à cela, cet article montre comment ajouter du texte à des documents PDF à l’aide de C#.
- API C# pour ajouter du texte au PDF
- Ajouter du texte à un PDF à l’aide de C#
- Ajouter du texte au PDF à l’aide de TextParagraph
- Insérer du texte transparent dans un PDF
API C# pour ajouter du texte au PDF
Afin d’ajouter dynamiquement du texte aux fichiers PDF, nous utiliserons Aspose.PDF for .NET. Il s’agit d’une API riche en fonctionnalités qui vous permet de créer et de manipuler des fichiers PDF à partir de vos applications .NET. Vous pouvez soit télécharger l’API ou l’installer à l’aide de NuGet.
PM> Install-Package Aspose.PDF
Ajouter du texte à un PDF à l’aide de C#
Voici les étapes pour ajouter du texte à un fichier PDF à l’aide de C#.
- Chargez le fichier PDF à l’aide de la classe Document.
- Obtenez la page souhaitée du PDF dans un objet Page.
- Créez un objet TextFragment et définissez son texte, sa position, sa police, sa couleur d’arrière-plan, etc.
- Créez un objet TextBuilder et initialisez-le avec l’objet Page.
- Utilisez la méthode TextBuilder.AppendText(TextFragment) pour ajouter du texte à la page du PDF.
- Enregistrez le fichier PDF mis à jour à l’aide de la méthode Document.Save(String).
L’exemple de code suivant montre comment ajouter du texte à un fichier PDF.
// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Ouvrir le document
Document pdfDocument = new Document("input.pdf");
// Obtenir une page particulière
Page pdfPage = (Page)pdfDocument.Pages[1];
// Créer un fragment de texte
TextFragment textFragment = new TextFragment("main text");
textFragment.Position = new Position(100, 600);
// Définir les propriétés du texte
textFragment.TextState.FontSize = 12;
textFragment.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray);
textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
// Créer un objet TextBuilder
TextBuilder textBuilder = new TextBuilder(pdfPage);
// Ajouter le fragment de texte à la page PDF
textBuilder.AppendText(textFragment);
// Enregistrez le document PDF résultant.
pdfDocument.Save("output.pdf");
Ajouter du texte au PDF à l’aide de TextParagraph
Voici les étapes pour ajouter du texte à un fichier PDF à l’aide de TextParagraph.
- Chargez le fichier PDF à l’aide de la classe Document.
- Obtenez la page souhaitée du PDF dans un objet Page ou ajoutez-en un nouveau.
- Créez un objet TextBuilder et initialisez-le avec l’objet Page.
- Créez un objet de la classe TextParagraph.
- Spécifiez l’emplacement du paragraphe à l’aide de la propriété TextParagraph.Rectangle.
- Définissez les options de mise en forme de TextParagraph.
- Créez un objet TextFragment et définissez son texte, sa position, sa police, sa couleur d’arrière-plan, etc.
- Ajoutez le TextFragment au paragraphe en utilisant la méthode TextParagraph.AppendLine(TextFragment).
- Ajoutez un paragraphe à la page à l’aide de la méthode TextBuilder.AppendParagraph(TextParagraph).
- Enregistrez le fichier PDF mis à jour à l’aide de la méthode Document.Save(String).
L’exemple de code suivant montre comment ajouter du texte à un PDF à l’aide de la classe TextParagraph.
// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
string fontFile = "font.ttf";
// Charger le fichier PDF d'entrée
Document doc = new Document("input.pdf");
// Créer un objet générateur de texte pour la première page du document
TextBuilder textBuilder = new TextBuilder(doc.Pages[1]);
// Créer un fragment de texte avec un exemple de chaîne
TextFragment textFragment = new TextFragment("Hello world");
if (fontFile != "")
{
// Charger la police TrueType dans l'objet de flux
using (FileStream fontStream = File.OpenRead(fontFile))
{
// Définir le nom de la police pour la chaîne de texte
textFragment.TextState.Font = FontRepository.OpenFont(fontStream, FontTypes.TTF);
// Spécifiez la position du fragment de texte
textFragment.Position = new Position(10, 10);
// Ajoutez le texte à TextBuilder afin qu'il puisse être placé sur le fichier PDF
textBuilder.AppendText(textFragment);
}
// Enregistrer le document PDF résultant
doc.Save("output.pdf");
}
Ajouter du texte transparent dans un PDF en C#
Aspose.PDF for .NET permet également d’ajouter du texte transparent à un document PDF, comme illustré dans les étapes suivantes.
- Chargez le fichier PDF à l’aide de la classe Document.
- Obtenez la page souhaitée du PDF dans un objet Page ou ajoutez-en un nouveau.
- Créez et initialisez un objet Graph.
- Créez un objet Rectangle et initialisez-le.
- Définissez la propriété Rectangle.GraphInfo.FillColor.
- Ajoutez un rectangle au graphique à l’aide de la méthode Graph.Shapes.Add(Rectangle).
- Ajoutez Graph à la collection de paragraphes de la page à l’aide de la méthode Page.Paragraphs.Add(Graph).
- Créez un objet TextFragment et définissez sa propriété TextState.ForegroundColor.
- Ajoutez le TextFragment à la page en utilisant la méthode Page.Paragraphs.Add(TextFragment).
- Enregistrez le fichier PDF mis à jour à l’aide de la méthode Document.Save(String).
L’exemple de code suivant montre comment ajouter du texte transparent à un fichier PDF.
// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Créer une instance de document
Document doc = new Document("input.pdf");
// Créer une collection de pages à pages de fichiers PDF
Aspose.Pdf.Page page = doc.Pages.Add();
// Créer un objet graphique
Aspose.Pdf.Drawing.Graph canvas = new Aspose.Pdf.Drawing.Graph(100, 400);
// Créer une instance de rectangle avec certaines dimensions
Aspose.Pdf.Drawing.Rectangle rect = new Aspose.Pdf.Drawing.Rectangle(100, 100, 400, 400);
// Créer un objet de couleur à partir du canal de couleur Alpha
rect.GraphInfo.FillColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.FromArgb(128, System.Drawing.Color.FromArgb(12957183)));
// Ajouter un rectangle à la collection de formes de l'objet Graph
canvas.Shapes.Add(rect);
// Ajouter un objet graphique à la collection de paragraphes de l'objet page
page.Paragraphs.Add(canvas);
// Définir la valeur pour ne pas changer la position de l'objet graphique
canvas.IsChangePosition = false;
// Créer une instance TextFragment avec un exemple de valeur
TextFragment text = new TextFragment("transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text transparent text ");
// Créer un objet couleur à partir du canal Alpha
Aspose.Pdf.Color color = Aspose.Pdf.Color.FromArgb(30, 0, 255, 0);
// Définir les informations de couleur pour l'instance de texte
text.TextState.ForegroundColor = color;
// Ajouter du texte à la collection de paragraphes de l'instance de page
page.Paragraphs.Add(text);
// Enregistrez le fichier PDF mis à jour
doc.Save("output.pdf");
Obtenez une licence gratuite
Vous pouvez utiliser Aspose.PDF for .NET sans limitation d’évaluation à l’aide d’une licence temporaire.
Conclusion
Dans cet article, vous avez appris à ajouter du texte aux fichiers PDF existants à l’aide de C#. De plus, vous avez vu comment ajouter dynamiquement du texte transparent à un PDF. Vous pouvez en savoir plus sur l’API C# PDF à l’aide de la documentation. Vous pouvez également poster vos questions sur notre forum.