C# 操作PDF 圖層(Layer)—新增、刪除圖層、設定圖層可見性
前言
透過新增圖層,我們可以將文字、圖片、表格、圖形等元素精確定位於頁面指定位置,將這些元素進行疊放、組合形成頁面的最終效果。此外,對於頁面中已有的圖層我們也可以進行設定圖層可見性、刪除圖層等操作。在本篇文章中,將介紹如何在C#中進行PDF圖層的操作。
要點概括
1.新增圖層
線條
圖形
影像
字串
2.設定圖層隱藏、顯示
2.1 指定單個圖層可見性
透過索引值指定
透過圖層名稱指定
2.2 設定所有圖層可見性
3.刪除圖層
工具使用
Visual Studio
程式碼操作
一、 新增圖層
我們透過使用Spire.PDF新增圖層,支援新增線條、影像、字串、餅圖、橢圓形、矩形和多邊形等多種型別的圖層。
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"); } } }
新增效果:
二、設定圖層隱藏、顯示
(一)設定單個圖層的隱藏、顯示
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.透過圖層名稱來隱藏圖層的效果
(二)設定全部圖層的隱藏、顯示
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"); } } }
測試結果:
三、刪除圖層
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"); } } }
測試結果:
(本文完)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4550/viewspace-2823147/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- photoshop無法刪除圖層
- CAD如何設定圖層
- 分層圖
- 入學管理系統的頂層圖和一層圖
- Auto CAD:圖紙電腦圖層設定、圖面比例、圖面構圖之詳細攻略
- 畫出入學管理系統的頂層圖和1層圖
- RoadRunner圖層轉換
- 淺談分層圖
- 分層圖最短路
- AUTOCAD——圖層線型
- ps合併圖層快捷鍵ctrl加什麼 ps合併圖層快捷鍵在哪裡怎麼設定
- arcgis怎樣把面圖層按另一面圖層分割
- Vue 高德地圖 API Loca 如何使用 連線線圖層、脈衝連線圖層Vue地圖API
- 分層圖求最短路
- Python 在PDF中新增、替換、或刪除圖片Python
- ps合併圖層快捷鍵是什麼 ps合併圖層快捷鍵怎麼設定使用
- 繪製層次結構圖
- 直播系統搭建,插入圖片、刪除圖片、設定圖片大小
- After Effects 圖層屬性及屬性組結構詳解
- Cesium官方教程5--地形圖層
- MFC9.0層次結構圖
- 圖解Go的channel底層原理圖解Go
- AI框架中圖層IR的分析AI框架
- PDF轉雙層或者讀雙層PDF中的文字
- 室內地圖怎麼畫,樓層平面索引圖製作地圖索引
- 讀Flink原始碼談設計:圖的抽象與分層原始碼抽象
- CAD學習筆記基礎課【圖層】筆記
- WRF設定模式垂直層模式
- R視覺化09|ggplot2-圖層圖形語法 (1)視覺化
- Python基於Excel生成向量圖層及屬性表資訊:ArcPyPythonExcel
- AE指令碼-形狀圖層描邊屬性控制工具 FX StrokeSetter指令碼
- 不可複製的PDF轉成雙層可複製PDF
- ArcGIS填補面圖層的細小空白並刪除主體部分外的零散部分
- C# PDF轉圖片C#
- jquery 滑鼠移到圖片彈出浮動層顯示大圖片例子jQuery
- ArcMap10.7載入天地圖不顯示圖層,空白怎麼辦地圖
- CSS3圖層陰影程式碼例項CSSS3
- el-input-number 的圖層顯示問題