前言

通过添加图层,我们可以将文本、图片、表格、图形等元素精确定位于页面指定位置,将这些元素进行叠放、组合形成页面的最终效果。此外,对于页面中已有的图层我们也可以进行设置图层可见性、删除图层等操作。因此,在本篇文章中,将介绍如何在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. 最简单的基于FFmpeg的AVfilter例子(水印叠加)

    ===================================================== 最简单的基于FFmpeg的AVfilter例子系列文章: 最简单的基于FFmpeg的AVfi ...

  2. 四大组件之Activity小结

    一大波面试就要靠近,赶紧总结总结一些基础问题 1.Activity的概念 是Android应用层开发的四大组件之一,主要负责和用户交互部分,有自己的生命周期,在其上可以布置按钮,文本框等各种控件,简单 ...

  3. WebLogic重启

     1,用户名密码登录. 2,切换到weblogic的bin目录下  cd bea/user_projects/domains/base_domain/bin/ 3,先停止服务器  ./stopWe ...

  4. Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38817915,专题目录:http://blog.csdn.net/dba_huangzj ...

  5. javascript之JSON引入

    JSON: JavaScript Object Notation   JavaScript 对象表示法. 由于现在很多在服务器获取数据,很多都涉及json数据格式,因此学习json非常有必要. * 语 ...

  6. 深入理解 JSX

    JSX 是一个看起来很像 XML 的 JavaScript 语法扩展.React 可以用来做简单的 JSX 句法转换. 为什么要使用 JSX? 你不需要为了 React 使用 JSX,可以直接使用纯粹 ...

  7. Android ViewManager解读之requestLayout() 详解

    尊重原创: http://blog.csdn.net/sk719887916/article/details/48464035 上篇<Android View 中invalidate() 你所不 ...

  8. (十七)TableView的本地性能优化

    面试中常常会问TableView的性能优化. TableView只会加载能看到的Cell,每当有一个Cell进入视野范围内,就会调用. 存在着内存隐患,如果用户拖动的很快,所以内存会飙升的很快,因此要 ...

  9. RAC 10g administration

    10g RAC administration See OCFS Oracle Cluster Filesystem, ASM, TNSnames configuration, Oracle Datab ...

  10. 2013 HTML5中国峰会演讲:Android上的HTML5:过去,现在和将来

    转载请注明原文地址:http://blog.csdn.net/milado_nju ## 会议链接(应用和工具专场) http://2013.html5dw.com/main, 2013年8月10日 ...