Table des matières
Installé via NuGet
PM> Install-Package Spire.PDF
Liens connexes
La couche PDF est une fonctionnalité qui organise le contenu d'un fichier PDF en couches, ce qui permet aux utilisateurs de définir de manière sélective certains contenus pour qu'ils soient visibles et d'autres pour qu'ils soient invisibles dans le même fichier PDF. Les couches PDF sont un élément couramment utilisé dans les illustrations en couches, les cartes et les dessins CAO. Cet article vous montrera comment programmer ajouter, masquer ou supprimer des calques dans un fichier PDF en utilisant Spire.PDF for .NET.
- Ajouter des calques à un document PDF en C# et VB.NET
- Définir la visibilité des calques dans un document PDF en C# et VB.NET
- Supprimer des calques dans un document PDF en C# et VB.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
Ajouter des calques à un document PDF en C# et VB.NET
Spire.PDF for .NET fournit la méthode PdfDocument.Layers.AddLayer() pour ajouter un calque dans un document PDF, et vous pouvez ensuite dessiner du texte, des lignes, des images ou des formes sur le calque PDF. Les étapes détaillées sont les suivantes.
- Créez une instance PdfDocument.
- Chargez un exemple de fichier PDF à l'aide de la méthode PdfDocument.LoadFromFile().
- Ajoutez un calque avec le nom spécifié dans le PDF à l'aide de la méthode PdfDocument.Layers.AddLayer(String). Ou vous pouvez également définir la visibilité du calque lors de son ajout à l'aide de la méthode PdfDocument.Layers.AddLayer(String, PdfVisibility).
- Créez un canevas pour le calque à l'aide de la méthode PdfLayer.CreateGraphics().
- Dessinez du texte, une image ou d'autres éléments sur la toile.
- Enregistrez le document de résultat à l'aide de la méthode PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Graphics.Layer; using System.Drawing; namespace AddLayersToPdf { class Program { static void Main(string[] args) { //Create a PdfDocument instance and load a sample PDF file PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\Sample.pdf"); //Invoke AddLayerWatermark method to add a watermark layer AddLayerWatermark(pdf); //Invoke AddLayerHeader method to add a header layer AddLayerHeader(pdf); //Save to file pdf.SaveToFile("AddLayers.pdf"); pdf.Close(); } private static void AddLayerWatermark(PdfDocument doc) { //Create a layer named "Watermark" PdfLayer layer = doc.Layers.AddLayer("Watermark"); //Create a font PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 48), true); //Specify the watermark text string watermarkText = "CONFIDENTIAL"; //Get text size SizeF fontSize = font.MeasureString(watermarkText); //Calculate two offsets float offset1 = (float)(fontSize.Width * System.Math.Sqrt(2) / 4); float offset2 = (float)(fontSize.Height * System.Math.Sqrt(2) / 4); //Get page count int pageCount = doc.Pages.Count; //Declare two variables PdfPageBase page; PdfCanvas canvas; //Loop through the pages for (int i = 0; (i < pageCount); i++) { page = doc.Pages[i]; //Create a canvas from layer canvas = layer.CreateGraphics(page.Canvas); canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2); canvas.SetTransparency(0.4f); canvas.RotateTransform(-45); //Draw sting on the canvas of layer canvas.DrawString(watermarkText, font, PdfBrushes.DarkBlue, 0, 0); } } private static void AddLayerHeader(PdfDocument doc) { // Create a layer named "Header" PdfLayer layer = doc.Layers.AddLayer("Header"); //Get page size SizeF size = doc.Pages[0].Size; //Specify the initial values of X and y float x = 90; float y = 40; //Get page count int pageCount = doc.Pages.Count; //Declare two variables PdfPageBase page; PdfCanvas canvas; //Loop through the pages for (int i = 0; (i < pageCount); i++) { //Draw an image on the layer PdfImage pdfImage = PdfImage.FromFile(@"C:\Users\Administrator\Desktop\img.jpg"); float width = pdfImage.Width; float height = pdfImage.Height; page = doc.Pages[i]; canvas = layer.CreateGraphics(page.Canvas); canvas.DrawImage(pdfImage, x, y, width, height); //Draw a line on the layer PdfPen pen = new PdfPen(PdfBrushes.DarkGray, 2); canvas.DrawLine(pen, x, (y + (height + 5)), (size.Width - x), (y + (height + 2))); } } } }
Définir la visibilité des calques dans un document PDF en C# et VB.NET
Pour définir la visibilité d'un calque existant, vous devez obtenir un calque spécifié par son index ou son nom à l'aide de la propriété PdfDocument.Layers, puis afficher ou masquer le calque à l'aide de la propriété PdfLayer.Visibility. Les étapes détaillées sont les suivantes.
- Créez une instance PdfDocument.
- Chargez un exemple de document PDF à l'aide de la méthode PdfDocument.LoadFromFile().
- Définissez la visibilité d'un calque spécifié à l'aide de la propriété PdfDocument.Layers.Visibility.
- Enregistrez le document de résultat à l'aide de la méthode PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; using Spire.Pdf.Graphics.Layer; namespace HideLayer { class Program { static void Main(string[] args) { //Create a PdfDocument instance PdfDocument pdf = new PdfDocument(); //Load a sample PDF document pdf.LoadFromFile("AddLayers.pdf"); //Hide a specified layer by index pdf.Layers[0].Visibility = PdfVisibility.Off; //Hide a specified layer by name //pdf.Layers["Watermark"].Visibility = PdfVisibility.Off; //Save the result document pdf.SaveToFile("HideLayer.pdf"); } } }
Supprimer des calques dans un document PDF en C# et VB.NET
Spire.PDF for .NET vous permet également de supprimer une couche existante par son nom à l'aide de la méthode PdfDocument.Layers.RemoveLayer(String). Mais veuillez noter que les noms des calques PDF peuvent ne pas être uniques et cette méthode supprimera tous les calques PDF portant le même nom. Les étapes détaillées sont les suivantes.
- Créez une instance PdfDocument.
- Chargez un exemple de document PDF à l'aide de la méthode PdfDocument.LoadFromFile().
- Supprimez un calque spécifié par son nom à l'aide de la méthode PdfDocument.Layers.RemoveLayer(String).
- Enregistrez le document de résultat à l'aide de la méthode PdfDocument.SaveToFile().
- C#
- VB.NET
using Spire.Pdf; namespace DeleteLayer { class Program { static void Main(string[] args) { //Create a PdfDocument instance PdfDocument pdf = new PdfDocument(); //Load a sample PDF document pdf.LoadFromFile("AddLayers.pdf"); //Remove a layer by name pdf.Layers.RemoveLayer(("Watermark")); //Save the result document pdf.SaveToFile("DeleteLayer.pdf", FileFormat.PDF); } } }
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.