文档章节

PDF添加图片

朝如青丝暮成雪
 朝如青丝暮成雪
发布于 2017/03/28 17:43
字数 413
阅读 23
收藏 0

首先Nuget安装FreeSpire.PDF,添加引用。下面具体代码

public void addPicture()
        {
            //注意:PointF的Y坐标取值离底部边界100px   选中出现红框,红款据底部80px;
            //PointF由左下角开始,距离底部100px位置
            //pdf比例调节成75%为真实尺寸,在我这里
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile("D:\\1.pdf");
            //开始处理分页
            for (int i = 0; i < doc.Pages.Count; i++)
            {
                //打印当前页面的宽高
                Console.WriteLine(doc.Pages[i].Size.Width + "====" + doc.Pages[i].Size.Height);
                //得到当前页
                PdfPageBase page = doc.Pages[i];
                //新建一个PDF文件的橡皮图章对象,指定其注释的范围和大小  距离  大小
                //首页和中页位置固定,尾页查找关键字盖章
                PdfRubberStampAnnotation loStamp = null;
                if (i == 0)
                {
                    loStamp = new PdfRubberStampAnnotation(new RectangleF(new PointF(400, 100), new SizeF(80, 80)));
                }
                else if (i == doc.Pages.Count - 1)
                {
                    //得到根据关键字得到的结果集
                    PdfTextFind result = page.FindText("合计").Finds[0];
                    //计算坐标,因为PointF(0,0)距离底部还有100px距离,且由底部开始
                    //所以减去100同时减去顶部到关键字的距离
                    float pointY = page.Size.Height - result.Position.Y - 100;
                    loStamp = new PdfRubberStampAnnotation(new RectangleF(new PointF(result.Position.X, pointY), new SizeF(80, 80)));
                }
                else
                {
                    loStamp = new PdfRubberStampAnnotation(new RectangleF(new PointF(675, 0), new SizeF(80, 80)));
                }
                //表示注释的外观
                PdfAppearance loApprearance = new PdfAppearance(loStamp);
                //加载用作印章的图片
                PdfImage image = PdfImage.FromFile("D:\\1.jpg");
                //新建一个PDF模板,并在模板里绘制图片。设置图片的原始比例
                PdfTemplate template = new PdfTemplate(300, 300);
                //开始画图,坐标位置要设置成0
                template.Graphics.DrawImage(image, 0, 0);
                //设置注释的一般状态
                loApprearance.Normal = template;
                //获取或设置注释的外观
                loStamp.Appearance = loApprearance;
                //将此注释(图章)加入当前页的字段中
                page.AnnotationsWidget.Add(loStamp);
            }
            string output = "D:\\temp.pdf";
            doc.SaveToFile(output);
            doc.Dispose();
        }

© 著作权归作者所有

朝如青丝暮成雪
粉丝 10
博文 148
码字总数 56543
作品 0
浦东
程序员
私信 提问
Javascript将html转成pdf,下载(html2canvas 和 jsPDF)

最近碰到个需求,需要把当前页面生成pdf,并下载。弄了几天,自己整理整理,记录下来,我觉得应该会有人需要 :) 项目源码地址:https://github.com/linwalker/render-html-to-pdf html2ca...

孟飞阳
2018/08/15
0
0
使用iText库创建PDF文件

原文地址:使用iText库创建PDF文件 阅读目录 前言 iText库概述 iText库常用类 iText Hello World示例 给PDF文件设置文件属性 PDF中添加图片 PDF中创建表格 PDF中创建列表 PDF中设置样式/格式...

spinachgit
2017/10/24
0
0
将pdf转换成jpg转换器有什么好的方法

  当我们提到各种教程时,你应该有一个深刻的经验,PDF文件是最多的,唯一能更好地使用PDF文件的方法就是转换其格式,如果不转换其格式使用该文件就非常的不方便,所以PDF文件使用什么工具...

华夏后裔
2017/04/17
87
0
C#如何添加PDF水印

水印,一般分为文本水印和图片水印,是一种作为文档防伪、声明权限的重要保护手段。常见的,是在Word中添加水印,在PDF中该怎么来实现呢。下面将介绍来实现PDF文档添加水印的具体操作方法。 ...

E_iceblue
2018/01/10
0
0
C# 给现有PDF文档添加页眉、页脚

概述 页眉页脚是一篇完整、精致的文档的重要组成部分。在页眉页脚处,可以呈现的内容很多,如公司名称、页码、工作表名、日期、图片,如LOGO、标记等。在之前的文章中介绍了如何通过新建一页...

E-iceblue
2018/09/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Docker搭建Mysql集群、主从同步复制

1、创建数据挂载点: mkdir /opt/mysql-master/mysql、/opt/mysql-master/conf.d、/opt/mysql-slave/conf.d、/opt/mysql-slave/conf.d 2、分别在master、slave节点文件目录conf.d下创建touch......

WALK_MAN
15分钟前
0
0
手把手教你做中间件开发(分布式缓存篇)-借助redis已有的网络相关.c和.h文件,半小时快速实现一个epoll异步网络框架,程序demo

本文档配合主要对如下demo进行配合说明: 借助redis已有的网络相关.c和.h文件,半小时快速实现一个epoll异步网络框架,程序demo 0. 手把手教你做中间件、高性能服务器、分布式存储技术交流群 ...

y123456yz
16分钟前
0
0
阿里技术男的成长史:越想证明自己死得越快……

在上海工作8年后,身为部门经理的钱磊,管理着一家ERP公司的百十来号员工,“再往上爬就是老板和他儿子了……从这个领域的技术角度来讲算是做到了顶。”05年,钱磊就开始关注一家名字奇怪,做...

阿里云云栖社区
20分钟前
1
0
Spring-boot单元测试(私有方法测试)

Spring-boot的单元测试网上有了很多,当项目是可以使用spring-boot正常运行时,只要在测试类上添加如下配置就使用@Autowired的方式进行单元测试 @RunWith(SpringJUnit4ClassRunner.class)@...

琴兽
37分钟前
0
0
spring cloud(第一部)框架概述

关于微服务 近几年,'微服务'这个词越来越多的被身边的人所提及,到底什么是微服务,为什么微服务总是伴随着spring cloud被人们所提及,这里笔者结合多年的技术经历跟大家分享下自己的理解:...

白中墨
38分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部