• <menu id="w2i4a"></menu>
  • logo E-iceblue中文文檔

    文檔首頁>>E-iceblue中文文檔>>在 PDF 中添加、隱藏或刪除圖層

    在 PDF 中添加、隱藏或刪除圖層


    Spire.PDF for .NET 是一款專門對 Word 文檔進(jìn)行操作的 .NET 類庫。致力于在于幫助開發(fā)人員輕松快捷高效地創(chuàng)建、編輯、轉(zhuǎn)換和打印 Microsoft Word 文檔,而無需安裝 Microsoft Word。

    行號用于在每行文本旁邊顯示 Word 自動計(jì)算的行數(shù)。當(dāng)我們需要參考合同或法律文件等文檔中的特定行時(shí),它非常有用。word中的行號功能允許我們設(shè)置起始值、編號間隔、與文本的距離以及行號的編號方式。使用 Spire.Doc,我們可以實(shí)現(xiàn)上述所有功能。本文將介紹如何將 HTML 轉(zhuǎn)換為 PDF。

    Spire.PDF for.NET 最新下載

    歡迎加入spire技術(shù)交流群:767755948

    PDF 圖層是一種將 PDF 文件內(nèi)容分層排列的功能,它允許用戶有選擇性地在同一 PDF 文件中將某些內(nèi)容設(shè)置為可見,而將另一些內(nèi)容設(shè)置為不可見。PDF 圖層是分層藝術(shù)品、地圖和 CAD 圖紙中常用的元素。本文將演示如何使用 Spire.PDF for .NET 在 PDF 文件中以編程方式添加、隱藏或刪除圖層。

    • 在 C# 和 VB.NET 中為 PDF 文檔添加圖層
    • 在 C# 和 VB.NET 中設(shè)置 PDF 文檔中圖層的可見性
    • 在 C# 和 VB.NET 中刪除 PDF 文檔中的圖層
    安裝 Spire.PDF for .NET
    首先,您需要將 Spire.PDF for.NET 軟件包中包含的 DLL 文件作為引用添加到您的 .NET 項(xiàng)目中。這些 DLL 文件既可以從這個(gè)鏈接下載,也可以通過 NuGet 安裝。
    PM> Install-Package Spire.PDF
    在 C# 和 VB.NET 中為 PDF 文檔添加圖層
    Spire.PDF for .NET提供了PdfDocument.Layers.AddLayer()方法,用于在PDF文檔中添加圖層,然后您可以在PDF圖層上繪制文本、線條、圖像或形狀。具體步驟如下。
    • 創(chuàng)建一個(gè) PdfDocument 實(shí)例。
    • 使用 PdfDocument.LoadFromFile() 方法加載一個(gè)示例 PDF 文件。
    • 使用PdfDocument.Layers.AddLayer(String)方法在PDF文件中添加指定名稱的圖層。或者你也可以使用PdfDocument.Layers.AddLayer(String, PdfVisibility)方法在添加圖層的同時(shí)設(shè)置圖層的可見性。
    • 使用PdfLayer.CreateGraphics()方法為圖層創(chuàng)建畫布。
    • 在畫布上繪制文本、圖像或其他元素。
    • 使用 PdfDocument.SaveToFile() 方法保存結(jié)果文檔。
    [C#]
    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)));
                }
            }
        }
    } 
    [VB.NET]
    Imports Spire.Pdf
    Imports Spire.Pdf.Graphics
    Imports Spire.Pdf.Graphics.Layer
    Imports System.Drawing
    
    Namespace AddLayersToPdf
        Class Program
            Private Shared Sub Main(ByVal args() As String)
    
                'Create a PdfDocument instance and load a sample PDF file
                Dim pdf As PdfDocument = New PdfDocument
                pdf.LoadFromFile("C:\Users\Administrator\Desktop\Sample.pdf")
    
                'Invoke AddLayerWatermark method to add a watermark layer
                Program.AddLayerWatermark(pdf)
    
                'Invoke AddLayerHeader method to add a header layer
                Program.AddLayerHeader(pdf)
    
                'Save to file
                pdf.SaveToFile("AddLayers.pdf")
                pdf.Close()
            End Sub
    
            Private Shared Sub AddLayerWatermark(ByVal doc As PdfDocument)
    
                'Create a layer named "Watermark"
                Dim layer As PdfLayer = doc.Layers.AddLayer("Watermark")
    
                'Create a font
                Dim font As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("Arial", 48), True)
    
                'Specify the watermark text
                Dim watermarkText As String = "CONFIDENTIAL"
    
                'Get text size
                Dim fontSize As SizeF = font.MeasureString(watermarkText)
    
                'Calculate two offsets
                Dim offset1 As Single = CSng((fontSize.Width * System.Math.Sqrt(2) / 4))
                Dim offset2 As Single = CSng((fontSize.Height * System.Math.Sqrt(2) / 4))
    
                'Get page count
                Dim pageCount As Integer = doc.Pages.Count
    
                'Declare two variables
                Dim page As PdfPageBase
                Dim canvas As PdfCanvas
    
                'Loop through the pages
                Dim i As Integer = 0
                While (i < pageCount)
                    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)
                    i = (i + 1)
                    i += 1
                End While
            End Sub
    
            Private Shared Sub AddLayerHeader(ByVal doc As PdfDocument)
    
                ' Create a layer named "Header"
                Dim layer As PdfLayer = doc.Layers.AddLayer("Header")
    
                'Get page size
                Dim size As SizeF = doc.Pages(0).Size
    
                'Specify the initial values of X and y
                Dim x As Single = 90
                Dim y As Single = 40
    
                'Get page count
                Dim pageCount As Integer = doc.Pages.Count
    
                'Declare two variables
                Dim page As PdfPageBase
                Dim canvas As PdfCanvas
    
                'Loop through the pages
                Dim i As Integer = 0
                While (i < pageCount)
    
                    'Draw an image on the layer
                    Dim pdfImage As PdfImage = PdfImage.FromFile("C:\Users\Administrator\Desktop\img.jpg")
                    Dim width As Single = pdfImage.Width
                    Dim height As Single = pdfImage.Height
                    page = doc.Pages(i)
                    canvas = layer.CreateGraphics(page.Canvas)
                    canvas.DrawImage(pdfImage, x, y, width, height)
    
                    'Draw a line on the layer
                    Dim pen As PdfPen = New PdfPen(PdfBrushes.DarkGray, 2)
                    canvas.DrawLine(pen, x, (y + (height + 5)), (size.Width - x), (y + (height + 2)))
                    i += 1
                End While
            End Sub
        End Class
    End Namespace

    在C#和VB.NET中設(shè)置PDF文檔中圖層的可見性
    要設(shè)置現(xiàn)有圖層的可見性,你需要使用PdfDocument.Layers屬性通過索引或名稱獲取指定圖層,然后使用PdfLayer.Visibility屬性顯示或隱藏該圖層。具體步驟如下。

    • 創(chuàng)建一個(gè)PdfDocument實(shí)例。
    • 使用 PdfDocument.LoadFromFile() 方法加載一個(gè)示例 PDF 文檔。
    • 使用PdfDocument.Layers.Visibility屬性設(shè)置指定圖層的可見性。
    • 使用PdfDocument.SaveToFile()方法保存結(jié)果文檔。
    [C#]
    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");
            }
        }
    }
    [VB.NET]
    Imports Spire.Pdf
    Imports Spire.Pdf.Graphics.Layer
    
    Namespace HideLayer
        Class Program
            Private Shared Sub Main(ByVal args() As String)
    
                'Create a PdfDocument instance
                Dim pdf As PdfDocument = 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")
            End Sub
        End Class
    End Namespace

    在 C# 和 VB.NET 中刪除 PDF 文檔中的圖層
    Spire.PDF for .NET還允許您使用PdfDocument.Layers.RemoveLayer(String)方法通過其名稱刪除現(xiàn)有圖層。但請注意,PDF 圖層的名稱可能不是唯一的,該方法將刪除所有具有相同名稱的 PDF 圖層。具體步驟如下

    • 創(chuàng)建一個(gè) PdfDocument 實(shí)例。
    • 使用 PdfDocument.LoadFromFile() 方法加載一個(gè)示例 PDF 文檔。
    • 使用PdfDocument.Layers.RemoveLayer(String)方法刪除指定層。
    • 使用PdfDocument.SaveToFile()方法保存結(jié)果文檔
    [C#]

    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);
            }
        }
    }
    [VB.NET]

    Imports Spire.Pdf
    
    Namespace DeleteLayer
        Class Program
            Private Shared Sub Main(ByVal args() As String)
                'Create a PdfDocument instance
                Dim pdf As PdfDocument = 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)
            End Sub
        End Class
    End Namespace

    申請臨時(shí)許可證
    若想從生成的文檔中刪除評估信息,或解除功能限制,請申請 30 天試用許可證

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();