前言

通过添加图层,我们可以将文本、图片、表格、图形等元素精确定位于页面指定位置,将这些元素进行叠放、组合形成页面的最终效果。此外,对于页面中已有的图层我们也可以进行设置图层可见性、删除图层等操作。因此,在本篇文章中,将介绍如何在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, ), new PointF(, ), new PointF(, )); //这里可根据需要添加多条线条 //向页面添加一个名为“椭圆”的图层,设置图层为可见
layer = page.PageLayers.Add("椭圆", true);
//设置图形颜色、线条粗细
PdfPen pen = new PdfPen(Color.Yellow, 2.5f);
//填充图形内部颜色,并在页面指定位置添加指定大小的椭圆形图形
PdfBrush brush = new PdfSolidBrush(Color.White);
layer.Graphics.DrawEllipse(pen, brush, , , ,); //添加一个图片图层,并命名图层为“Image Layer”
layer = page.PageLayers.Add("Image Layer");
//加载图片,在页面指定位置添加该图片作为图层并设置图像的大小
layer.Graphics.DrawImage(PdfImage.FromFile("image.png"), , , , ); //添加字符串类型的图层,并命名为“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, ), new PdfPen(PdfBrushes.MediumVioletRed, ), , ); //保存并打开文档
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 = ; 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");
}
}
}

测试结果:

阅读结束!

如需转载,请注明出处!

C# 操作PDF 图层(Layer)——添加、删除图层、设置图层可见性的更多相关文章

  1. (20)jQuery的文档操作(创建,添加、设置样式和删除等)

    <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>jq ...

  2. ios开发图层layer与核心动画二:CATransform3D,CAlayear和UIView区别,layer的position和anchorpoint

    一:CATransform3D #import "ViewController.h" @interface ViewController () @property (weak, n ...

  3. 【译】在Asp.Net中操作PDF – iTextSharp -利用块,短语,段落添加文本

    原文 [译]在Asp.Net中操作PDF – iTextSharp -利用块,短语,段落添加文本 本篇文章是讲述使用iTextSharp这个开源组件的系列文章的第三篇,iTextSharp可以通过As ...

  4. java PDF添加图层,支持多页图层添加

     java PDF添加图层,支持多页图层添加 代码: import java.io.File; import java.io.FileOutputStream; import java.io.IOEx ...

  5. CAD.NET二次开发 新建图层 删除图层 指定图层颜色以及线形等

    基于浩辰CAD 2019测试 功能实现 直接上代码: [CommandMethod("CreateAndAssignAlayer")] //新建图层 然后添加到图层表里 publi ...

  6. 【译】在Asp.Net中操作PDF - iTextSharp - 利用列进行排版

    原文 [译]在Asp.Net中操作PDF - iTextSharp - 利用列进行排版 在使用iTextSharp通过ASP.Net生成PDF的系列文章中,前面的文章已经讲述了iTextSharp所涵 ...

  7. 【译】在Asp.Net中操作PDF - iTextSharp - 绘制矢量图

    原文 [译]在Asp.Net中操作PDF - iTextSharp - 绘制矢量图 在上一篇iTextSharp文章中讲述了如何将现有的图片插入PDF中并对其进行操作.但有时,你需要在PDF中绘制不依 ...

  8. 【译】在Asp.Net中操作PDF – iTextSharp - 操作图片

    原文 [译]在Asp.Net中操作PDF – iTextSharp - 操作图片 作为我的iTextSharp系列的文章的第七篇,开始探索使用iTextSharp在PDF中操作图片,理解本篇文章需要看 ...

  9. 【译】在Asp.Net中操作PDF – iTextSharp - 使用表格

    原文 [译]在Asp.Net中操作PDF – iTextSharp - 使用表格 使用Asp.Net生成PDF最常用的元素应该是表格,表格可以帮助比如订单或者发票类型的文档更加格式化和美观.本篇文章并 ...

随机推荐

  1. Spark-SQL连接MySql关系型数据库

    本文主要分析Spark SQL官方文档中有关于JDBC To Other Databases部分,以MySQL数据库为例,结合数据读写操作的实例代码进行详细的分析.本文中的代码需要使用到Mysql J ...

  2. 从JDK源码角度看线程的阻塞和唤醒

    目前在Java语言层面能实现阻塞唤醒的方式一共有三种:suspend与resume组合.wait与notify组合.park与unpark组合.其中suspend与resume因为存在无法解决的竟态问 ...

  3. 14_Android中Service的使用,关于广播接收者的说明

     服务:长期后台运行的没有界面的组件 android应用:什么地方需要用到服务? 天气预报:后台的连接服务器的逻辑,每隔一段时间获取最新的天气信息 股票显示:后台的连接服务器的逻辑,每隔一段时间获 ...

  4. Gradle 1.12用户指南翻译——第二十一章. Gradle 插件

    昨天晚上只顾着和女朋友看<匆匆那年>电视剧的最后几集,所以说好的Android文档<Gradle 插件用户指南>第五章自然也没翻译多少.所以今天也发不了第五章的翻译了,就发几个 ...

  5. 通过Java进行网页抓取并生成plist创建代码

    抓取网页的方法: 抓取网页可以通过正则表达式也可以通过Java. 通过firefox浏览器,安装Firebug来查看网页的源代码. 首先将要抓取的部分保存到本地,步骤如下: 1.在要抓取的位置右键,选 ...

  6. 《java入门第一季》之面向对象面试题(fianl关键字)

    /* 面试题:final修饰局部变量的问题 基本类型:基本类型的值不能发生改变. 引用类型:引用类型的(地址值)(不能发生改变),但是,该对象的堆内存的值是可以改变的. */ class Studen ...

  7. Java进阶(十八)Java实现定时器(Timer)

    Java实现定时器(Timer) 绪 在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等.对于这样的操作最方便.高效的实现方式就是使用java.util.Timer工具类.java.u ...

  8. Android实训案例(六)——四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听

    Android实训案例(六)--四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听 Android中四大组件的使用时重中之重,我这个阶段也不奢望能把他 ...

  9. FFMPEG结构体分析:AVFormatContext

    注:写了一系列的结构体的分析的文章,在这里列一个列表: FFMPEG结构体分析:AVFrameFFMPEG结构体分析:AVFormatContextFFMPEG结构体分析:AVCodecContext ...

  10. iOS和OS X中的bundle

    bundle也可以称之为包(package). 它在iOS和OS X中实际为一个文件夹但却当成单独的文件来对待. 每一个app都有一个bundle,并且你可以通过在xxx.app图标上右击鼠标然后选择 ...