C#操作PDF图层(Layer)——添加、删除图层、设置图层可见性-创新互联

前言

通过添加图层,我们可以将文本、图片、表格、图形等元素精确定位于页面指定位置,将这些元素进行叠放、组合形成页面的最终效果。此外,对于页面中已有的图层我们也可以进行设置图层可见性、删除图层等操作。因此,在本篇文章中,将介绍如何在C#中进行PDF图层的操作。

创新互联公司是一家专注于成都网站建设、网站设计与策划设计,安达网站建设哪家好?创新互联公司做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:安达等地区。安达做网站价格咨询:18982081108

要点概括

1.添加图层
线条
图形
图像
字符串
2.设置图层隐藏、显示
指定单个图层可见性
设置所有图层可见性
3.删除图层


工具使用

  • Spire.PDF for .NET 4.0
  • Visual Studio

代码操作

一、 添加图层
我们通过使用Spire.PDF添加图层,支持添加线条、图像、字符串、饼图、椭圆形、矩形和多边形等多种类型的图层。
C# 操作PDF 图层(Layer)——添加、删除图层、设置图层可见性

【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# 操作PDF 图层(Layer)——添加、删除图层、设置图层可见性
二、设置图层隐藏、显示
(一)设置单个图层的隐藏、显示

【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.通过“索引值”来隐藏图层的效果
C# 操作PDF 图层(Layer)——添加、删除图层、设置图层可见性
2.通过图层名称来隐藏图层的效果
C# 操作PDF 图层(Layer)——添加、删除图层、设置图层可见性

(二)设置全部图层的隐藏、显示
【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# 操作PDF 图层(Layer)——添加、删除图层、设置图层可见性
三、删除图层
【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");
        }
    }
}

测试结果:
C# 操作PDF 图层(Layer)——添加、删除图层、设置图层可见性

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:C#操作PDF图层(Layer)——添加、删除图层、设置图层可见性-创新互联
标题来源:http://cdiso.cn/article/dhpodg.html

其他资讯