Dans un document PDF, l'arrière-plan fait référence à l'aspect visuel général derrière le contenu des pages. L'arrière-plan peut être une simple couleur unie ou une image de votre choix. L'ajout d'arrière-plans aux PDF peut vous aider à ajouter un intérêt visuel à vos documents et également à améliorer la lisibilité. Dans cet article, vous apprendrez à programmer définir la couleur ou l'image d'arrière-plan pour le PDF 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 

Ajouter une couleur d'arrière-plan aux documents PDF en C# et VB.NET

La propriété PdfPageBase.BackgroundColor proposée par Spire.PDF for .NET vous permet de définir une couleur unie comme arrière-plan du PDF. Voici les étapes détaillées.

  • Créez une instance PdfDocument.
  • Chargez un exemple de fichier PDF à l'aide de la méthode PdfDocument.LoadFromFile().
  • Parcourez toutes les pages PDF et ajoutez une couleur d'arrière-plan à chaque page à l'aide de la propriété PdfPageBase.BackgroundColor.
  • Définissez l'opacité de l'arrière-plan à l'aide de la propriété PdfPageBase.BackgroudOpacity.
  • Enregistrez le document de résultat à l'aide de la méthode PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using System.Drawing;
    
    namespace PDFBackgroundColor
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                //Load a sample PDF file from disk
                pdf.LoadFromFile("input.pdf");
    
                //Loop through the pages in the PDF file
                foreach (PdfPageBase page in pdf.Pages)
                {
                    //Set the background color for each page
                    page.BackgroundColor = Color.Yellow;
    
                    //Set the opacity of the background
                    page.BackgroudOpacity = 0.1f;
                }
    
                //Save the result PDF file
                pdf.SaveToFile("BackgroundColor.pdf");
                pdf.Close();
    
            }
        }
    }

C#/VB.NET: Add Background Color or Background Image to PDF

Ajouter des images d'arrière-plan aux documents PDF C# et VB.NET

Si vous souhaitez ajouter une image comme arrière-plan pour correspondre au thème du document, vous pouvez utiliser la propriété PdfPageBase.BackgroundImage. Voici les étapes détaillées.

  • Créez une instance PdfDocument.
  • Chargez un exemple de fichier PDF à l'aide de la méthode PdfDocument.LoadFromFile().
  • Parcourez toutes les pages PDF et ajoutez une image d'arrière-plan à chaque page à l'aide de la propriété PdfPageBase.BackgroundImage.
  • Définissez l'opacité de l'arrière-plan à l'aide de la propriété PdfPageBase.BackgroudOpacity.
  • Enregistrez le document de résultat à l'aide de la méthode PdfDocument.SaveToFile().
  • C#
  • VB.NET
using Spire.Pdf;
    using System.Drawing;
    
    namespace PDFBackgroundImage
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Create a PdfDocument instance
                PdfDocument pdf = new PdfDocument();
    
                //Load a sample PDF file from disk
                pdf.LoadFromFile("input.pdf");
    
                //Load an image
                Image background = Image.FromFile("background.png");
    
                //Loop through the pages in the PDF file
                foreach (PdfPageBase page in pdf.Pages)
                {
                    //Set the loaded image as the background image for each page
                    page.BackgroundImage = background;
    
                    //Set the opacity of the background
                    page.BackgroudOpacity = 0.2f;
                }
    
                //Save the result PDF file
                pdf.SaveToFile("BackgroundImage.pdf");
                pdf.Close();
    
            }
        }
    }

C#/VB.NET: Add Background Color or Background Image to 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.

Voir également

Camada PDF é um recurso que organiza o conteúdo de um arquivo PDF em camadas, o que permite aos usuários definir seletivamente alguns conteúdos para serem visíveis e outros para serem invisíveis no mesmo arquivo PDF. As camadas de PDF são um elemento comum usado em ilustrações em camadas, mapas e desenhos CAD. Este artigo demonstrará como programaticamente adicionar, ocultar ou excluir camadas em um arquivo PDF usando Spire.PDF for .NET.

Instalar o Spire.PDF for .NET

Para começar, você precisa adicionar os arquivos DLL incluídos no pacote Spire.PDF for.NET como referências em seu projeto .NET. Os arquivos DLLs podem ser baixados deste link ou instalados via NuGet.

PM> Install-Package Spire.PDF

Adicionar camadas a um documento PDF em C# e VB.NET

O Spire.PDF for .NET fornece o método PdfDocument.Layers.AddLayer() para adicionar uma camada em um documento PDF e você pode desenhar texto, linhas, imagens ou formas na camada PDF. As etapas detalhadas são as seguintes.

  • Crie uma instância PdfDocument.
  • Carregue um arquivo PDF de amostra usando o método PdfDocument.LoadFromFile().
  • Adicione uma camada com o nome especificado no PDF usando o método PdfDocument.Layers.AddLayer(String). Ou você também pode definir a visibilidade da camada ao adicioná-la usando o método PdfDocument.Layers.AddLayer(String, PdfVisibility).
  • Crie uma tela para a camada usando o método PdfLayer.CreateGraphics().
  • Desenhe texto, imagem ou outros elementos na tela.
  • Salve o documento resultante usando o método 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

Definir visibilidade de camadas em um documento PDF em C# e VB.NET

Para definir a visibilidade de uma camada existente, você precisará obter uma camada especificada por seu índice ou nome usando a propriedade PdfDocument.Layers e, em seguida, mostrar ou ocultar a camada usando a propriedade PdfLayer.Visibility.As etapas detalhadas são as seguintes.

  • Crie uma instância PdfDocument.
  • Carregue um documento PDF de amostra usando o método PdfDocument.LoadFromFile().
  • Defina a visibilidade de uma camada especificada usando a propriedade PdfDocument.Layers.Visibility.
  • Salve o documento resultante usando o método 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

Excluir camadas em um documento PDF em C# e VB.NET

Spire.PDF for .NET também permite que você remova uma camada existente por seu nome usando o método PdfDocument.Layers.RemoveLayer(String). Mas observe que os nomes das camadas PDF podem não ser exclusivos e este método removerá todas as camadas PDF com o mesmo nome. As etapas detalhadas são as seguintes.

  • Crie uma instância PdfDocument.
  • Carregue um documento PDF de amostra usando o método PdfDocument.LoadFromFile().
  • Exclua uma camada especificada por seu nome usando o método PdfDocument.Layers.RemoveLayer(String).
  • Salve o documento resultante usando o método 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

Solicitar uma licença temporária

Se você deseja remover a mensagem de avaliação dos documentos gerados ou se livrar das limitações de função, por favor solicite uma licença de avaliação de 30 dias para você mesmo.

Veja também

Слой PDF — это функция, которая упорядочивает содержимое файла PDF по слоям, что позволяет пользователям выборочно устанавливать отображение одного содержимого в одном и том же файле PDF, а другое — невидимым. Слои PDF — это распространенный элемент, используемый в многоуровневых графических объектах, картах и чертежах САПР. В этой статье будет показано, как программно добавлять, скрывать или удалять слои в файле PDF используя Spire.PDF for .NET.

Установите Spire.PDF for .NET

Для начала вам нужно добавить файлы DLL, включенные в пакет Spire.PDF for .NET, в качестве ссылок в ваш проект .NET. Файлы DLL можно загрузить по этой ссылке или установить через NuGet.

PM> Install-Package Spire.PDF

Добавление слоев в документ PDF на C# и VB.NET

Spire.PDF for .NET предоставляет метод PdfDocument.Layers.AddLayer() для добавления слоя в документ PDF, после чего вы можете рисовать текст, линии, изображения или фигуры на слое PDF. Подробные шаги следующие.

  • Создайте экземпляр PdfDocument.
  • Загрузите образец PDF-файла с помощью метода PdfDocument.LoadFromFile().
  • Добавьте слой с указанным именем в PDF, используя метод PdfDocument.Layers.AddLayer(String). Или вы также можете установить видимость слоя при его добавлении с помощью метода PdfDocument.Layers.AddLayer(String, PdfVisibility).
  • Создайте холст для слоя, используя метод PdfLayer.CreateGraphics().
  • Нарисуйте текст, изображение или другие элементы на холсте.
  • Сохраните результирующий документ с помощью метода 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

Установите видимость слоев в документе PDF в C# и VB.NET

Чтобы установить видимость существующего слоя, вам нужно получить указанный слой по его индексу или имени с помощью свойства PdfDocument.Layers, а затем показать или скрыть слой с помощью свойства PdfLayer.Visibility. Подробные шаги следующие.

  • Создайте экземпляр PdfDocument.
  • Загрузите образец PDF-документа с помощью метода PdfDocument.LoadFromFile().
  • Установите видимость указанного слоя с помощью свойства PdfDocument.Layers.Visibility.
  • Сохраните результирующий документ с помощью метода 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

Удалить слои в документе PDF в C# и VB.NET

Spire.PDF for .NET также позволяет удалить существующий слой по его имени с помощью метода PdfDocument.Layers.RemoveLayer(String). Но учтите, что имена слоев PDF могут не быть уникальными, и этот метод удалит все слои PDF с одинаковыми именами. Подробные шаги следующие.

  • Создайте экземпляр PdfDocument.
  • Загрузите образец PDF-документа с помощью метода PdfDocument.LoadFromFile().
  • Удалить указанный слой по его имени с помощью метода PdfDocument.Layers.RemoveLayer(String).
  • Сохраните результирующий документ с помощью метода 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

Подать заявку на временную лицензию

Если вы хотите удалить оценочное сообщение из сгенерированных документов или избавиться от функциональных ограничений, пожалуйста запросить 30-дневную пробную лицензию для себя.

Смотрите также

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

La capa de PDF es una función que organiza el contenido de un archivo PDF en capas, lo que permite a los usuarios configurar selectivamente algunos contenidos para que sean visibles y otros para que sean invisibles en el mismo archivo PDF. Las capas de PDF son un elemento común utilizado en ilustraciones en capas, mapas y dibujos CAD. Este artículo demostrará cómo programáticamente agregar, ocultar o eliminar capas en un archivo PDF utilizando Spire.PDF for .NET.

Instalar Spire.PDF for .NET

Para empezar, debe agregar los archivos DLL incluidos en el paquete Spire.PDF for .NET como referencias en su proyecto .NET. Los archivos DLL se pueden descargar desde este enlace o instalar a través de NuGet.

PM> Install-Package Spire.PDF

Agregar capas a un documento PDF en C# y VB.NET

Spire.PDF for .NET proporciona el método PdfDocument.Layers.AddLayer() para agregar una capa en un documento PDF y luego puede dibujar texto, líneas, imágenes o formas en la capa PDF. Los pasos detallados son los siguientes.

  • Cree una instancia de PdfDocument.
  • Cargue un archivo PDF de muestra usando el método PdfDocument.LoadFromFile().
  • Agregue una capa con el nombre especificado en el PDF usando el método PdfDocument.Layers.AddLayer(String) O también puede establecer la visibilidad de la capa mientras la agrega usando el método PdfDocument.Layers.AddLayer(String, PdfVisibility).
  • Cree un lienzo para la capa usando el método PdfLayer.CreateGraphics().
  • Dibuja texto, imagen u otros elementos en el lienzo.
  • Guarde el documento de resultados utilizando el método 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

Establecer la visibilidad de las capas en un documento PDF en C# y VB.NET

Para establecer la visibilidad de una capa existente, deberá obtener una capa específica por su índice o nombre mediante la propiedad PdfDocument.Layers y, a continuación, mostrar u ocultar la capa mediante la propiedad PdfLayer.Visibility. Los pasos detallados son los siguientes.

  • Cree una instancia de PdfDocument.
  • Cargue un documento PDF de muestra utilizando el método PdfDocument.LoadFromFile().
  • Establezca la visibilidad de una capa específica usando la propiedad PdfDocument.Layers.Visibility.
  • Guarde el documento de resultados utilizando el método 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

Eliminar capas en un documento PDF en C# y VB.NET

Spire.PDF for .NET también le permite eliminar una capa existente por su nombre usando el método PdfDocument.Layers.RemoveLayer(String).Pero tenga en cuenta que los nombres de las capas PDF pueden no ser únicos y este método eliminará todas las capas PDF con mismo nombre Los pasos detallados son los siguientes.

  • Cree una instancia de PdfDocument.
  • Cargue un documento PDF de muestra utilizando el método PdfDocument.LoadFromFile().
  • Elimine una capa específica por su nombre usando el método PdfDocument.Layers.RemoveLayer(String).
  • Guarde el documento de resultados utilizando el método 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

Solicitar una Licencia Temporal

Si desea eliminar el mensaje de evaluación de los documentos generados o deshacerse de las limitaciones de la función, por favor solicitar una licencia de prueba de 30 días para ti.

Ver también

PDF 레이어는 PDF 파일의 내용을 레이어로 배열하는 기능으로, 동일한 PDF 파일에서 사용자가 선택적으로 일부 내용은 보이고 다른 내용은 보이지 않도록 설정할 수 있습니다. PDF 레이어는 레이어로 구성된 아트웍, 지도 및 CAD 도면에 사용되는 공통 요소입니다. 이 문서에서는 프로그래밍 방식으로 PDF 파일에서 레이어 추가, 숨기기 또는 삭제 Spire.PDF for .NET사용.

Spire.PDF for .NET 설치

먼저 Spire.PDF for .NET 패키지에 포함된 DLL 파일을 .NET 프로젝트의 참조로 추가해야 합니다. DLL 파일은 이 링크에서 다운로드하거나 NuGet을 통해 설치할 수 있습니다.

PM> Install-Package Spire.PDF

C# 및 VB.NET에서 PDF 문서에 레이어 추가

Spire.PDF for .NET은 PdfDocument.Layers.AddLayer() 메서드를 제공하여 PDF 문서에 레이어를 추가한 다음 PDF 레이어에 텍스트, 선, 이미지 또는 모양을 그릴 수 있습니다. 자세한 단계는 다음과 같습니다.

  • PdfDocument 인스턴스를 만듭니다.
  • PdfDocument.LoadFromFile() 메서드를 사용하여 샘플 PDF 파일을 로드합니다.
  • PdfDocument.Layers.AddLayer(String) 메서드를 사용하여 PDF에 지정된 이름의 레이어를 추가합니다. 또는 PdfDocument.Layers.AddLayer(String, PdfVisibility) 메서드를 사용하여 레이어를 추가하는 동안 레이어의 가시성을 설정할 수도 있습니다.
  • PdfLayer.CreateGraphics() 메서드를 사용하여 레이어의 캔버스를 만듭니다.
  • 캔버스에 텍스트, 이미지 또는 기타 요소를 그립니다.
  • 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

C# 및 VB.NET에서 PDF 문서의 레이어 가시성 설정

기존 레이어의 가시성을 설정하려면 PdfDocument.Layers 속성을 사용하여 인덱스 또는 이름으로 지정된 레이어를 가져온 다음 PdfLayer.Visibility 속성을 사용하여 레이어를 표시하거나 숨길 필요가 있습니다. 자세한 단계는 다음과 같습니다.

  • PdfDocument 인스턴스를 만듭니다.
  • PdfDocument.LoadFromFile() 메서드를 사용하여 샘플 PDF 문서를 로드합니다.
  • PdfDocument.Layers.Visibility 속성을 사용하여 지정된 레이어의 가시성을 설정합니다.
  • 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

C# 및 VB.NET에서 PDF 문서의 레이어 삭제

Spire.PDF for .NET 사용하면 PdfDocument.Layers.RemoveLayer(String) 메서드를 사용하여 해당 이름으로 기존 레이어를 제거할 수도 있습니다. 그러나 PDF 레이어의 이름은 고유하지 않을 수 있으며 이 방법은 동일한 이름을 가진 모든 PDF 레이어를 제거합니다. 자세한 단계는 다음과 같습니다.

  • PdfDocument 인스턴스를 만듭니다.
  • PdfDocument.LoadFromFile() 메서드를 사용하여 샘플 PDF 문서를 로드합니다.
  • PdfDocument.Layers.RemoveLayer(String) 메서드를 사용하여 이름별로 지정된 레이어를 삭제합니다.
  • 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

임시 면허 신청

생성된 문서에서 평가 메시지를 제거하거나 기능 제한을 제거하려면 다음을 수행하십시오 30일 평가판 라이선스 요청 자신을 위해.

또한보십시오

Il livello PDF è una funzione che dispone il contenuto di un file PDF in livelli, che consente agli utenti di impostare selettivamente alcuni contenuti in modo che siano visibili e altri invisibili nello stesso file PDF. I livelli PDF sono un elemento comune utilizzato nella grafica a più livelli, nelle mappe e nei disegni CAD. Questo articolo dimostrerà come eseguire a livello di codice aggiungere, nascondere o eliminare livelli in un file PDF utilizzando Spire.PDF for .NET.

Installa Spire.PDF for .NET

Per cominciare, è necessario aggiungere i file DLL inclusi nel pacchetto Spire.PDF for.NET come riferimenti nel progetto .NET. I file DLL possono essere scaricati da questo link o installato tramite NuGet.

PM> Install-Package Spire.PDF

Aggiungi livelli a un documento PDF in C# e VB.NET

Spire.PDF for .NET fornisce il metodo PdfDocument.Layers.AddLayer() per aggiungere un livello in un documento PDF e puoi quindi disegnare testo, linee, immagini o forme sul livello PDF. I passaggi dettagliati sono i seguenti.

  • Creare un'istanza PdfDocument.
  • Carica un file PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Aggiungi un livello con il nome specificato nel PDF utilizzando il metodo PdfDocument.Layers.AddLayer(String) oppure puoi anche impostare la visibilità del livello durante l'aggiunta utilizzando il metodo PdfDocument.Layers.AddLayer(String, PdfVisibility).
  • Crea una tela per il livello usando il metodo PdfLayer.CreateGraphics().
  • Disegna testo, immagine o altri elementi sulla tela.
  • Salvare il documento risultato utilizzando il metodo 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

Imposta la visibilità dei livelli in un documento PDF in C# e VB.NET

Per impostare la visibilità di un layer esistente, è necessario ottenere un layer specificato in base al suo indice o nome utilizzando la proprietà PdfDocument.Layers, quindi mostrare o nascondere il layer utilizzando la proprietà PdfLayer.Visibility.I passaggi dettagliati sono i seguenti.

  • Creare un'istanza PdfDocument.
  • Carica un documento PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Imposta la visibilità di un layer specificato utilizzando la proprietà PdfDocument.Layers.Visibility.
  • Salvare il documento risultato utilizzando il metodo 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

Elimina livelli in un documento PDF in C# e VB.NET

Spire.PDF for .NET ti consente anche di rimuovere un livello esistente in base al suo nome utilizzando il metodo PdfDocument.Layers.RemoveLayer(String).Ma tieni presente che i nomi dei livelli PDF potrebbero non essere univoci e questo metodo rimuoverà tutti i livelli PDF con lo stesso nome I passaggi dettagliati sono i seguenti.

  • Creare un'istanza PdfDocument.
  • Carica un documento PDF di esempio utilizzando il metodo PdfDocument.LoadFromFile().
  • Elimina un layer specificato in base al suo nome utilizzando il metodo PdfDocument.Layers.RemoveLayer(String).
  • Salvare il documento risultato utilizzando il metodo 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

Richiedi una licenza temporanea

Se desideri rimuovere il messaggio di valutazione dai documenti generati o eliminare le limitazioni delle funzioni, per favore richiedere una licenza di prova di 30 giorni per te.

Guarda anche

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.

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)));
                }
            }
        }
    } 

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

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");
            }
        }
    }

C#/VB.NET: Add, Hide or Delete Layers in 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);
            }
        }
    }

C#/VB.NET: Add, Hide or Delete Layers in 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.

Voir également

Friday, 18 August 2023 02:09

C#/VB.NET: Criar um documento PDF

Instalado via NuGet

PM> Install-Package Spire.PDF

Links Relacionados

A criação de documentos PDF a partir do código oferece uma ampla gama de benefícios. Por exemplo, você pode incorporar facilmente conteúdo dinâmico, como entrada do usuário, registros de banco de dados ou dados em tempo real. A geração de PDF baseada em código permite maior personalização e automação, minimizando a intervenção manual na criação de documentos altamente personalizados. Neste artigo, você aprenderá como criar um documento PDF do zero em C# e VB.NET usando Spire.PDF for .NET.

Instalar o Spire.PDF for .NET

Para começar, você precisa adicionar os arquivos DLL incluídos no pacote Spire.PDF for.NET como referências em seu projeto .NET. Os arquivos DLLs podem ser baixados deste link ou instalados via NuGet.

PM> Install-Package Spire.PDF

Conhecimento prévio

Uma página em Spire.PDF (representada por PdfPageBase) consiste na área do cliente e nas margens ao redor. A área de conteúdo é para os usuários escreverem vários conteúdos e as margens geralmente são bordas em branco.

Conforme mostrado na figura abaixo, a origem do sistema de coordenadas na página está localizada no canto superior esquerdo da área do cliente, com o eixo x estendendo-se horizontalmente para a direita e o eixo y estendendo-se verticalmente para baixo. Todos os elementos adicionados à área do cliente devem ser baseados nas coordenadas especificadas.

C#/VB.NET: Create a PDF Document

Além disso, a tabela a seguir lista as classes e métodos importantes, que podem ajudá-lo a entender facilmente o trecho de código fornecido na seção a seguir.

Membro Descrição
classe PDFDocument Representa um modelo de documento PDF.
Classe PdfPageBase Representa uma página em um documento PDF.
classe PdfSolidBrush Representa um pincel que preenche qualquer objeto com uma cor sólida.
Classe PDFTrueTypeFont Representa uma fonte true type.
Classe PDFStringFormat Representa informações de formato de texto, como alinhamento, espaçamento de caracteres e recuo.
Classe PDFTextWidget Representa a área de texto com a capacidade de abranger várias páginas.
Classe PDFTextLayout Representa as informações de layout de texto.
Método PdfDocument.Pages.Add() Adiciona uma página a um documento PDF.
Método PdfPageBase.Canvas.DrawString() Desenha uma string em uma página no local especificado com fontes e objetos de pincel especificados.
Método PdfTextWidget.Draw() Desenha o widget de texto em uma página no local especificado.
Método PdfDocument.Save() Salva o documento em um arquivo PDF.

Crie um documento PDF do zero em C# e VB.NET

Embora o Spire.PDF for .NET suporte a adição de vários tipos de elementos a documentos PDF, este artigo apenas demonstra como criar um documento PDF com texto simples. A seguir estão as etapas detalhadas.

  • Crie um objeto PdfDocument.
  • Adicione uma página usando o método PdfDocument.Pages.Add().
  • Crie objetos de pincel e fonte.
  • Desenhe string na página em uma coordenada especificada usando o método PdfPageBase.Canvas.DrawString().
  • Crie um objeto PdfTextWidget para armazenar um pedaço de texto.
  • Desenhe o widget de texto na página em um local especificado usando o método PdfTextWidget.Draw().
  • Salve o documento em um arquivo PDF usando o método 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

Solicitar uma licença temporária

Se você deseja remover a mensagem de avaliação dos documentos gerados ou se livrar das limitações de função, por favor solicite uma licença de teste de 30 dias para você mesmo.

Veja também

Установлено через NuGet

PM> Install-Package Spire.PDF

Ссылки по теме

Создание PDF-документов из кода предлагает широкий спектр преимуществ. Например, вы можете легко включать динамический контент, такой как пользовательский ввод, записи базы данных или данные в реальном времени. Создание PDF-файлов на основе кода обеспечивает более широкие возможности настройки и автоматизации, сводя к минимуму ручное вмешательство при создании узкоспециализированных документов. В этой статье вы узнаете, как создать PDF-документ с нуля на C# и VB.NET используя Spire.PDF for .NET.

Установите Spire.PDF for .NET

Для начала вам нужно добавить файлы DLL, включенные в пакет Spire.PDF for .NET, в качестве ссылок в ваш проект .NET. Файлы DLL можно загрузить по этой ссылке или установить через NuGet.

PM> Install-Package Spire.PDF

Жизненный опыт

Страница в Spire.PDF (представленная PdfPageBase) состоит из клиентской области и полей вокруг нее. Область содержимого предназначена для того, чтобы пользователи могли писать различное содержимое, а поля обычно представляют собой пустые края.

Как показано на рисунке ниже, начало системы координат на странице расположено в верхнем левом углу клиентской области, при этом ось X идет горизонтально вправо, а ось Y — вертикально вниз. Все элементы, добавляемые в клиентскую область, должны основываться на указанных координатах.

C#/VB.NET: Create a PDF Document

Кроме того, в следующей таблице перечислены важные классы и методы, которые помогут вам легко понять фрагмент кода, представленный в следующем разделе.

Член Описание
класс PdfDocument Представляет модель документа PDF.
Класс PdfPageBase Представляет страницу в документе PDF.
Класс PdfSolidBrush Представляет собой кисть, которая закрашивает любой объект сплошным цветом.
Класс PdfTrueTypeFont Представляет шрифт истинного типа.
класс PdfStringFormat Представляет информацию о текстовом формате, такую как выравнивание, расстояние между символами и отступ.
Класс PdfTextWidget Представляет текстовую область с возможностью занимать несколько страниц.
Класс PdfTextLayout Представляет информацию о макете текста.
Метод PdfDocument.Pages.Add() Добавляет страницу в документ PDF.
Метод PdfPageBase.Canvas.DrawString() Рисует строку на странице в указанном месте с указанными объектами шрифта и кисти.
Метод PdfTextWidget.Draw() Рисует текстовый виджет на странице в указанном месте.
PdfDocument.Save() method Saves the document to a PDF file. Сохраняет документ в файл PDF.

Создание PDF-документа с нуля на C# и VB.NET

Хотя Spire.PDF for .NET поддерживает добавление различных типов элементов в документы PDF, в этой статье показано только создание документа PDF с обычным текстом. Ниже приведены подробные шаги.

  • Создайте объект PdfDocument.
  • Добавьте страницу с помощью метода PdfDocument.Pages.Add().
  • Создание объектов кисти и шрифта.
  • Нарисуйте строку на странице по указанной координате с помощью метода PdfPageBase.Canvas.DrawString().
  • Создайте объект PdfTextWidget для хранения фрагмента текста.
  • Нарисуйте текстовый виджет на странице в указанном месте с помощью метода PdfTextWidget.Draw().
  • Сохраните документ в файл PDF с помощью метода 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

Подать заявку на временную лицензию

Если вы хотите удалить оценочное сообщение из сгенерированных документов или избавиться от функциональных ограничений, пожалуйста запросить 30-дневную пробную лицензию для себя.

Смотрите также