C#/VB.NET: Ebenen in PDF hinzufügen, ausblenden oder löschen

C#/VB.NET: Ebenen in PDF hinzufügen, ausblenden oder löschen

2023-08-18 02:31:15

Bei der PDF-Ebene handelt es sich um eine Funktion, die den Inhalt einer PDF-Datei in Ebenen anordnet. Dadurch können Benutzer gezielt festlegen, dass einige Inhalte in derselben PDF-Datei sichtbar und andere unsichtbar sind. PDF-Ebenen sind ein häufiges Element, das in geschichteten Grafiken, Karten und CAD-Zeichnungen verwendet wird. In diesem Artikel wird die programmgesteuerte Vorgehensweise demonstriert Ebenen in einer PDF-Datei hinzufügen, ausblenden oder löschen Verwendung von Spire.PDF for .NET.

Installieren Sie Spire.PDF for .NET

Zunächst müssen Sie die im Spire.PDF for.NET-Paket enthaltenen DLL-Dateien als Referenzen in Ihrem .NET-Projekt hinzufügen. Die DLLs-Dateien können entweder über diesen Link heruntergeladen oder über NuGet installiert werden.

PM> Install-Package Spire.PDF

Fügen Sie Ebenen zu einem PDF-Dokument in C# und VB.NET hinzu

Spire.PDF for .NET bietet die Methode PdfDocument.Layers.AddLayer() zum Hinzufügen einer Ebene in einem PDF-Dokument. Anschließend können Sie Text, Linien, Bilder oder Formen auf der PDF-Ebene zeichnen. Die detaillierten Schritte sind wie folgt.

  • Erstellen Sie eine PdfDocument-Instanz.
  • Laden Sie eine Beispiel-PDF-Datei mit der Methode PdfDocument.LoadFromFile().
  • Fügen Sie mit der Methode PdfDocument.Layers.AddLayer(String) eine Ebene mit dem angegebenen Namen in die PDF-Datei ein. Sie können die Sichtbarkeit der Ebene auch beim Hinzufügen mit der Methode PdfDocument.Layers.AddLayer(String, PdfVisibility) festlegen.
  • Erstellen Sie mit der Methode PdfLayer.CreateGraphics() eine Leinwand für die Ebene.
  • Zeichnen Sie Text, Bilder oder andere Elemente auf die Leinwand.
  • Speichern Sie das Ergebnisdokument mit der Methode 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)));
                }
            }
        }
    } 

C#/VB.NET: Add, Hide or Delete Layers in PDF

Legen Sie die Sichtbarkeit von Ebenen in einem PDF-Dokument in C# und VB.NET fest

Um die Sichtbarkeit einer vorhandenen Ebene festzulegen, müssen Sie eine bestimmte Ebene anhand ihres Index oder Namens mithilfe der Eigenschaft „PdfDocument.Layers“ abrufen und die Ebene dann mithilfe der Eigenschaft „PdfLayer.Visibility“ ein- oder ausblenden. Die detaillierten Schritte sind wie folgt.

  • Erstellen Sie eine PdfDocument-Instanz.
  • Laden Sie ein Beispiel-PDF-Dokument mit der Methode PdfDocument.LoadFromFile().
  • Legen Sie die Sichtbarkeit einer bestimmten Ebene mit der Eigenschaft PdfDocument.Layers.Visibility fest.
  • Speichern Sie das Ergebnisdokument mit der Methode 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");
            }
        }
    }

C#/VB.NET: Add, Hide or Delete Layers in PDF

Löschen Sie Ebenen in einem PDF-Dokument in C# und VB.NET

Spire.PDF for .NET können Sie mit der Methode PdfDocument.Layers.RemoveLayer(String) auch eine vorhandene Ebene anhand ihres Namens entfernen. Bitte beachten Sie jedoch, dass die Namen der PDF-Ebenen möglicherweise nicht eindeutig sind und diese Methode alle PDF-Ebenen mit demselben Namen entfernt. Die detaillierten Schritte sind wie folgt.

  • Erstellen Sie eine PdfDocument-Instanz.
  • Laden Sie ein Beispiel-PDF-Dokument mit der Methode PdfDocument.LoadFromFile().
  • Löschen Sie eine angegebene Ebene anhand ihres Namens mit der Methode PdfDocument.Layers.RemoveLayer(String).
  • Speichern Sie das Ergebnisdokument mit der Methode 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);
            }
        }
    }

C#/VB.NET: Add, Hide or Delete Layers in PDF

Beantragen Sie eine temporäre Lizenz

Wenn Sie die Bewertungsmeldung aus den generierten Dokumenten entfernen oder die Funktionseinschränkungen beseitigen möchten, wenden Sie sich bitte an uns Fordern Sie eine 30-Tage-Testlizenz an für sich selbst.

Siehe auch