C#/VB.NET : créer un document PDF

2023-08-18 02:01:27 zaki zou

Installé via NuGet

PM> Install-Package Spire.PDF

La création de documents PDF à partir de code offre un large éventail d'avantages. Par exemple, vous pouvez facilement incorporer du contenu dynamique tel que des entrées d'utilisateurs, des enregistrements de base de données ou des données en temps réel. La génération de PDF basée sur le code permet une plus grande personnalisation et automatisation, minimisant l'intervention manuelle dans la création de documents hautement personnalisés. Dans cet article, vous apprendrez à créer un document PDF à partir de rien en C# et VB.NET en utilisant Spire.PDF for .NET.

Installer Spire.PDF for .NET

Pour commencer, vous devez ajouter les fichiers DLL inclus dans le package Spire.PDF for .NET en tant que références dans votre projet .NET. Les fichiers DLL peuvent être téléchargés à partir de ce lien ou installés via NuGet.

PM> Install-Package Spire.PDF

Connaissances de base

Une page dans Spire.PDF (représentée par PdfPageBase) se compose d'une zone client et de marges tout autour. La zone de contenu permet aux utilisateurs d'écrire divers contenus et les marges sont généralement des bords vierges.

Comme le montre la figure ci-dessous, l'origine du système de coordonnées sur la page est située dans le coin supérieur gauche de la zone client, l'axe des x s'étendant horizontalement vers la droite et l'axe des y s'étendant verticalement vers le bas. Tous les éléments ajoutés à la zone client doivent être basés sur les coordonnées spécifiées.

C#/VB.NET: Create a PDF Document

En outre, le tableau suivant répertorie les classes et méthodes importantes, qui peuvent vous aider à comprendre facilement l'extrait de code fourni dans la section suivante.

Membre Description
Classe PdfDocument Représente un modèle de document PDF.
Classe PdfPageBase Représente une page dans un document PDF.
Classe PdfSolidBrush Représente un pinceau qui remplit n'importe quel objet avec une couleur unie.
Classe PdfTrueTypeFont Représente une police True Type.
Classe PdfStringFormat Représente les informations de format de texte, telles que l'alignement, l'espacement des caractères et le retrait.
Classe PdfTextWidget Représente la zone de texte avec la possibilité de s'étendre sur plusieurs pages.
Classe PdfTextLayout Représente les informations de mise en page du texte.
Méthode PdfDocument.Pages.Add() Ajoute une page à un document PDF.
Méthode PdfPageBase.Canvas.DrawString() Dessine une chaîne sur une page à l'emplacement spécifié avec les objets de police et de pinceau spécifiés.
Méthode PdfTextWidget.Draw() Dessine le widget de texte sur une page à l'emplacement spécifié.
Méthode PdfDocument.Save() Enregistre le document dans un fichier PDF.

Créer un document PDF à partir de zéro en C# et VB.NET

Bien que Spire.PDF for .NET prenne en charge l'ajout de divers types d'éléments aux documents PDF, cet article montre uniquement comment créer un document PDF avec du texte brut. Voici les étapes détaillées.

  • Créez un objet PdfDocument.
  • Ajoutez une page à l'aide de la méthode PdfDocument.Pages.Add().
  • Créez des objets de pinceau et de police.
  • Dessinez une chaîne sur la page à une coordonnée spécifiée à l'aide de la méthode PdfPageBase.Canvas.DrawString().
  • Créez un objet PdfTextWidget pour contenir un morceau de texte.
  • Dessinez le widget de texte sur la page à un emplacement spécifié à l'aide de la méthode PdfTextWidget.Draw().
  • Enregistrez le document dans un fichier PDF à l'aide de la méthode PdfDocument.Save().
  • C#
  • VB.NET
using Spire.Pdf;
    using Spire.Pdf.Graphics;
    using System.Drawing;
    
    namespace CreatePdfDocument
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument object
                PdfDocument doc = new PdfDocument();
    
                //Add a page
                PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(35f));
    
                //Specify heading text
                String titleText = "What is MySQL";
    
                //Create solid brushes
                PdfSolidBrush titleBrush = new PdfSolidBrush(new PdfRGBColor(Color.Blue));
                PdfSolidBrush paraBrush = new PdfSolidBrush(new PdfRGBColor(Color.Black));
    
                //Create true type fonts
                PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("Times New Roman", 18f, FontStyle.Bold),true);
                PdfTrueTypeFont paraFont = new PdfTrueTypeFont(new Font("Times New Roman", 12f, FontStyle.Regular), true);
    
                //Set the text alignment via PdfStringFormat class
                PdfStringFormat format = new PdfStringFormat();
                format.Alignment = PdfTextAlignment.Center;
    
                //Draw heading on the center of the page
                page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 20, format);
    
                //Get paragraph content from a .txt file
                string paraText = File.ReadAllText("C:\\Users\\Administrator\\Desktop\\content.txt");
    
                //Create a PdfTextWidget object to hold the paragrah content
                PdfTextWidget widget = new PdfTextWidget(paraText, paraFont, paraBrush);
    
                //Create a rectangle where the paragraph content will be placed
                RectangleF rect = new RectangleF(0, 50, page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height);
    
                //Set the PdfLayoutType to Paginate to make the content paginated automatically
                PdfTextLayout layout = new PdfTextLayout();
                layout.Layout = PdfLayoutType.Paginate;
    
                //Draw the widget on the page
                widget.Draw(page, rect, layout);
    
                //Save to file
                doc.SaveToFile("CreatePdfDocument.pdf");
                doc.Dispose();
            }
        }
    }

C#/VB.NET: Create a PDF Document

Demander une licence temporaire

Si vous souhaitez supprimer le message d'évaluation des documents générés ou vous débarrasser des limitations de la fonction, veuillez demander une licence d'essai de 30 jours pour toi.

Voir également