您好,登錄后才能下訂單哦!
通過添加圖層,我們可以將文本、圖片、表格、圖形等元素精確定位于頁面指定位置,將這些元素進(jìn)行疊放、組合形成頁面的最終效果。此外,對于頁面中已有的圖層我們也可以進(jìn)行設(shè)置圖層可見性、刪除圖層等操作。因此,在本篇文章中,將介紹如何在C#中進(jìn)行PDF圖層的操作。
1.添加圖層
線條
圖形
圖像
字符串
2.設(shè)置圖層隱藏、顯示
指定單個圖層可見性
設(shè)置所有圖層可見性
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();
//添加一個線條圖層,設(shè)置為不可見
PdfPageLayer layer = page.PageLayers.Add("Line", true);
//在頁面指定位置添加指定長度的線條,并設(shè)置線條顏色、粗細(xì)等格式
layer.Graphics.DrawLine(new PdfPen(PdfBrushes.Blue, 1), new PointF(0, 0), new PointF(0, 200)); //這里可根據(jù)需要添加多條線條
//向頁面添加一個名為“橢圓”的圖層,設(shè)置圖層為不可見
layer = page.PageLayers.Add("橢圓", true);
//設(shè)置圖形顏色、線條粗細(xì)
PdfPen pen = new PdfPen(Color.Yellow, 2.5f);
//填充圖形內(nèi)部顏色,并在頁面指定位置添加指定大小的橢圓形圖形
PdfBrush brush = new PdfSolidBrush(Color.White);
layer.Graphics.DrawEllipse(pen, brush, 240, 200, 60,20);
//添加一個圖片圖層,并命名圖層為“Image Layer”
layer = page.PageLayers.Add("Image Layer");
//加載圖片,在頁面指定位置添加該圖片作為圖層并設(shè)置圖像的大小
layer.Graphics.DrawImage(PdfImage.FromFile("image.png"), 200, 230, 150, 185);
//添加字符串類型的圖層,并命名為“String Layer”
layer = page.PageLayers.Add("String Layer");
//向頁面指定位置繪如文本,并設(shè)置字體、字號、顏色等格式
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");
}
}
}
添加效果:
二、設(shè)置圖層隱藏、顯示
(一)設(shè)置單個圖層的隱藏、顯示
【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");
//設(shè)置圖層可見屬性為Off,通過索引值來隱藏第3個圖層
//doc.Layers[2].Visibility = PdfVisibility.Off;
//設(shè)置圖層可見屬性為Off,通過圖層名稱來隱藏圖層
doc.Layers["String Layer"].Visibility = PdfVisibility.Off;
//保存并打開文檔
doc.SaveToFile("HideLayer0.pdf");
System.Diagnostics.Process.Start("HideLayer0.pdf");
}
}
}
測試結(jié)果:
1.通過“索引值”來隱藏圖層的效果
2.通過圖層名稱來隱藏圖層的效果
(二)設(shè)置全部圖層的隱藏、顯示
【C#】
using System;
using Spire.Pdf;
using Spire.Pdf.Graphics.Layer;
namespace ShowLayer_PDF
{
class Program
{
static void Main(string[] args)
{
//創(chuàng)建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");
}
}
}
測試結(jié)果:
三、刪除圖層
【C#】
using Spire.Pdf;
namespace DeleteLayer_PDF
{
class Program
{
static void Main(string[] args)
{
//創(chuàng)建一個PdfDocument類對象,加載包含多個圖層的PDF文檔
PdfDocument doc = new PdfDocument();
doc.LoadFromFile("AddLayers.pdf");
//調(diào)用方法RemoveLayer()刪除名為“Line”的圖層
doc.Layers.RemoveLayer(("Line"));
//保存并打開文檔
doc.SaveToFile("DeleteLayer.pdf", FileFormat.PDF);
System.Diagnostics.Process.Start("DeleteLayer.pdf");
}
}
}
測試結(jié)果:
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。