xml地图|网站地图|网站标签 [设为首页] [加入收藏]
委托和接口,设置图层可见性
分类:编程

能用委托解决的事情,接口也都可以解决。如下所示:

前言

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

参考书 :

 

要点概括

1.添加图层

  • 线条
  • 图形
  • 图像
  • 字符串

2.设置图层隐藏、显示

  • 指定单个图层可见性
  • 设置所有图层可见性

3.删除图层

 

<<振动分析>> 张准 汪凤泉 编著 东南大学出版社 ISBN 7-80123-583-4

   public static void Main()
        {
            int[] values = { 1, 2, 3, 4 };
            Util.TransformAll(values, new Squarer());
            foreach (int i in values)
            {
                Console.WriteLine(i);        //输出1,4,9,16
            }
        }
     
     public interface ITransformer
        {
            int Transform(int x);
        }

        public class Util
        {
            public static void TransformAll(int[] values, ITransformer t)
            {
                for (int i = 0; i < values.Length; i++)
                {
                    values[i] = t.Transform(values[i]);
                }
            }
        }

        class Squarer : ITransformer
        {
            public int Transform(int x)
            {
                return x * x;
            }
        }  

工具使用

  • Spire.PDF for .NET 4.0

参考章节 : 4.6.2 和 4.6.3

上面的例子中没有多播,且接口中只定义了一个方法。如果订阅者需要支持不同的转换方式(如平方、立方),则需要多次实现ITransformer接口。

代码操作

<<数值分析>> 崔瑞彩 谢伟松 天津大学出版社 ISBN 7-5618-1366-X

这个时候你就会发现很烦,因为每种转换都要写一个实现类!如下所示:

一、添加图层

我们通过使用Spire.PDF添加图层,支持添加线条、图像、字符串、饼图、椭圆形、矩形和多边形等多种类型的图层。

图片 1

【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");  
        }
    }
}

添加效果:

图片 2

参考章节 : 3.1

        public static void Main()
        {
            int[] datas = { 1, 2, 3, 4 };
            Util.TransformAll(datas, new Cuber());
            foreach (int i in datas)
            {
                Console.WriteLine(i);        //输出1,8,27,64
            }
        }


...    
        class Squarer : ITransformer
        {
            public int Transform(int x)
            {
                return x * x;
            }
        }

        class Cuber : ITransformer
        {
            public int Transform(int x)
            {
                return x * x * x;
            }
        }

二、设置图层隐藏、显示

参考资料:

 

(一)设置单个图层的隐藏、显示

 【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.通过“索引值”来隐藏图层的效果

图片 3

2.通过图层名称来隐藏图层的效果

图片 4

<<交替使用幂法和降阶法求解矩阵全部特征值>> 下载地址:

本文由澳门新葡亰手机版发布于编程,转载请注明出处:委托和接口,设置图层可见性

上一篇:迭代和列表生成式,思维导图 下一篇:没有了
猜你喜欢
热门排行
精彩图文