前言
通過添加圖層,我們可以將文本、圖片、表格、圖形等元素精確定位於頁面指定位置,將這些元素進行疊放、組合形成頁面的最終效果。此外,對於頁面中已有的圖層我們也可以進行設置圖層可見性、刪除圖層等操作。因此,在本篇文章中,將介紹如何在C#中進行PDF圖層的操作。
要點概括
1.添加圖層
- 線條
- 圖形
- 圖像
- 字符串
2.設置圖層隱藏、顯示
- 指定單個圖層可見性
- 設置所有圖層可見性
3.刪除圖層
工具使用
代碼操作
一、添加圖層
我們通過使用Spire.PDF添加圖層,支持添加線條、圖像、字符串、餅圖、橢圓形、矩形和多邊形等多種類型的圖層。
【C#】
using Spire.Pdf; using Spire.Pdf.Graphics; using System.Drawing; namespace AddLayers_PDF { class Program { static void Main(string[] args) { //新建PDF文檔,添加一頁 PdfDocument pdf = new PdfDocument(); PdfPageBase page = pdf.Pages.Add(); //添加一個線條圖層,設置為可見 PdfPageLayer layer = page.PageLayers.Add("Line", true); //在頁面指定位置添加指定長度的線條,並設置線條顏色、粗細等格式 layer.Graphics.DrawLine(new PdfPen(PdfBrushes.Blue, 1), new PointF(0, 0), new PointF(0, 200)); //這里可根據需要添加多條線條 //向頁面添加一個名為“橢圓”的圖層,設置圖層為可見 layer = page.PageLayers.Add("橢圓", true); //設置圖形顏色、線條粗細 PdfPen pen = new PdfPen(Color.Yellow, 2.5f); //填充圖形內部顏色,並在頁面指定位置添加指定大小的橢圓形圖形 PdfBrush brush = new PdfSolidBrush(Color.White); layer.Graphics.DrawEllipse(pen, brush, 240, 200, 60,20); //添加一個圖片圖層,並命名圖層為“Image Layer” layer = page.PageLayers.Add("Image Layer"); //加載圖片,在頁面指定位置添加該圖片作為圖層並設置圖像的大小 layer.Graphics.DrawImage(PdfImage.FromFile("image.png"), 200, 230, 150, 185); //添加字符串類型的圖層,並命名為“String Layer” layer = page.PageLayers.Add("String Layer"); //向頁面指定位置繪如文本,並設置字體、字號、顏色等格式 layer.Graphics.DrawString("OH~IT'S SO GOOD! RIGHT? \n LET'S GET STARTED!\n COME ON, GUYS!", new PdfFont(PdfFontFamily.TimesRoman, 12), new PdfPen(PdfBrushes.MediumVioletRed, 1), 45, 250); //保存並打開文檔 pdf.SaveToFile("AddLayers.pdf", FileFormat.PDF); System.Diagnostics.Process.Start("AddLayers.pdf"); } } }
添加效果:
二、設置圖層隱藏、顯示
(一)設置單個圖層的隱藏、顯示
【C#】
using Spire.Pdf; using Spire.Pdf.Graphics.Layer; namespace HideOrShowLayer_PDF { class Program { static void Main(string[] args) { //實例化PdfDocument類,加載文檔 PdfDocument doc = new PdfDocument("AddLayers.pdf"); //設置圖層可見屬性為Off,通過索引值來隱藏第3個圖層 //doc.Layers[2].Visibility = PdfVisibility.Off; //設置圖層可見屬性為Off,通過圖層名稱來隱藏圖層 doc.Layers["String Layer"].Visibility = PdfVisibility.Off; //保存並打開文檔 doc.SaveToFile("HideLayer0.pdf"); System.Diagnostics.Process.Start("HideLayer0.pdf"); } } }
測試結果:
1.通過“索引值”來隱藏圖層的效果
2.通過圖層名稱來隱藏圖層的效果
(二)設置全部圖層的隱藏、顯示
【C#】
using System; using Spire.Pdf; using Spire.Pdf.Graphics.Layer; namespace ShowLayer_PDF { class Program { static void Main(string[] args) { //創建PdfDocument類對象,加載pdf測試文檔 PdfDocument doc = new PdfDocument("AddLayers.pdf"); //遍歷文檔中的所有圖層, for (int i = 0; i < doc.Layers.Count; i++) { //顯示所有圖層 //doc.Layers[i].Visibility = PdfVisibility.On; //隱藏所有圖層 doc.Layers[i].Visibility = PdfVisibility.Off; } //保存並打開文檔 doc.SaveToFile("HideAllLayers.pdf"); System.Diagnostics.Process.Start("HideAllLayers.pdf"); } } }
測試結果:
三、刪除圖層
【C#】
using Spire.Pdf; namespace DeleteLayer_PDF { class Program { static void Main(string[] args) { //創建一個PdfDocument類對象,加載包含多個圖層的PDF文檔 PdfDocument doc = new PdfDocument(); doc.LoadFromFile("AddLayers.pdf"); //調用方法RemoveLayer()刪除名為“Line”的圖層 doc.Layers.RemoveLayer(("Line")); //保存並打開文檔 doc.SaveToFile("DeleteLayer.pdf", FileFormat.PDF); System.Diagnostics.Process.Start("DeleteLayer.pdf"); } } }
測試結果:
閱讀結束!
如需轉載,請注明出處!