提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:李显亮|2019-08-22 14:14:03.757|阅读 1311 次
概述:Spire.PDF是一个专业的PDF组件,能够独立地创建、编写、编辑、操作和阅读PDF文件,支持 .NET、Java、WPF和Silverlight。本文将介绍如何添加水印以及添加、获取PDF附件。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
Spire.PDF是一个专业的PDF组件,能够独立地创建、编写、编辑、操作和阅读PDF文件,支持 .NET、Java、WPF和Silverlight。Spire.PDF的PDF API拥有丰富的功能,如安全设置(包括数字签名)、PDF文本/附件/图片提取、PDF文件合并/拆分、元数据更新、章节和段落优化、图形/图像描绘和插入、表格创建和处理、数据导入等等。>>下载Spire.PDF最新试用版
添加图片水印
Spire.Pdf.PdfPageBase类提供了一个属性BackgroundImage,用户可以通过该属性来获取或设置当前页面的背景图,除此之外还可以通过BackgroundRegion属性设置背景图的位置及大小,最终达到图片水印的效果。
//加载PDF文档 PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile("Spire.Presentation.pdf"); //获取PDF文档的第一页 PdfPageBase page = pdf.Pages[0]; //获取图片并将其设置为页面的背景图 Image img = Image.FromFile("Logo.png"); page.BackgroundImage = img; //指定背景图的位置和大小 page.BackgroundRegion = new RectangleF(200, 200, 200, 200); //保存文档 pdf.SaveToFile("ImageWaterMark.pdf");
添加文本水印
添加文本水印时,需要先绘制文本并设置文本格式如字体、颜色及排列方式等,然后将其添加到页面作为水印。
//加载PDF文档 PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile("Spire.Presentation.pdf"); //获取PDF文档的第一页 PdfPageBase page = pdf.Pages[0]; //绘制文本,设置文本格式并将其添加到页面 PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.Canvas.ClientSize.Width / 2, page.Canvas.ClientSize.Height / 3)); brush.Graphics.SetTransparency(0.3f); brush.Graphics.Save(); brush.Graphics.TranslateTransform(brush.Size.Width / 2, brush.Size.Height / 2); brush.Graphics.RotateTransform(-45); PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 20f), true); brush.Graphics.DrawString("草稿", font, PdfBrushes.Red, 0, 0, new PdfStringFormat(PdfTextAlignment.Center)); brush.Graphics.Restore(); brush.Graphics.SetTransparency(1); page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.Canvas.ClientSize)); //保存文档 pdf.SaveToFile("TextWaterMark.pdf");
Spire.PDF组件提供了两种将文档附加到PDF的方式。一种是通过调用PdfAttachmentCollection类的Add() 方法将文档作为文件附件添加到PDF,另一种则是将文档作为注释附加到PDF的页面中。
添加附件
将文档作为文件附件添加到PDF
//加载PDF文档 PdfDocument pdf = new PdfDocument("Test.pdf"); //加载需要附加的文档 PdfAttachment attachment = new PdfAttachment("New.pdf"); //将文档添加到原PDF文档的附件集合中 pdf.Attachments.Add(attachment); //保存文档 pdf.SaveToFile("Attachment1.pdf");
将文档作为注释附加到PDF文档的页面
//加载PDF文档 PdfDocument doc = new PdfDocument("Test.pdf"); //给文档添加一个新页面 PdfPageBase page = doc.Pages.Add(); //添加文本到页面 PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial", 16f, System.Drawing.FontStyle.Bold)); page.Canvas.DrawString("Attachments:", font1, PdfBrushes.CornflowerBlue, new Point(50, 50)); //将文档作为注释添加到页面 PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial", 12f, System.Drawing.FontStyle.Bold)); PointF location = new PointF(52, 80); String label = "Report.docx"; byte[] data = File.ReadAllBytes("Report.docx"); SizeF size = font2.MeasureString(label); RectangleF bounds = new RectangleF(location, size); page.Canvas.DrawString(label, font2, PdfBrushes.MediumPurple, bounds); bounds = new RectangleF(bounds.Right + 3, bounds.Top, font2.Height / 2, font2.Height); PdfAttachmentAnnotation annotation1 = new PdfAttachmentAnnotation(bounds, "Report.docx", data); annotation1.Color = Color.Purple; annotation1.Flags = PdfAnnotationFlags.NoZoom; annotation1.Icon = PdfAttachmentIcon.Graph; annotation1.Text = "Report.docx"; (page as PdfNewPage).Annotations.Add(annotation1); //保存文档 doc.SaveToFile("Attachment2.pdf");
获取附件
根据附件添加方式的不同,获取附件也分为以下两种相应的方式。
获取文件附件
//加载PDF文档 PdfDocument pdf = new PdfDocument("Attachment1.pdf"); //获取文档的第一个文件附件 PdfAttachment attachment = pdf.Attachments[0]; //获取该附件的信息 Console.WriteLine("Name: {0}", attachment.FileName); Console.WriteLine("MimeType: {0}", attachment.MimeType); Console.WriteLine("Description: {0}", attachment.Description); Console.WriteLine("Creation Date: {0}", attachment.CreationDate); Console.WriteLine("Modification Date: {0}", attachment.ModificationDate); //将附件的数据写入到新文档 File.WriteAllBytes(attachment.FileName, attachment.Data); Console.ReadKey();
获取注释附件
//加载PDF文档 PdfDocument pdf = new PdfDocument("Attachment2.pdf"); //实例化一个list并将文档内所有页面的Attachment annotations添加到该list List attaches = new List(); foreach (PdfPageBase page in pdf.Pages) { foreach (PdfAnnotation annotation in page.AnnotationsWidget) { attaches.Add(annotation as PdfAttachmentAnnotationWidget); } } //遍历list,将附件数据写入到新文档 for (int i = 0; i < attaches.Count; i++) { File.WriteAllBytes(attaches[i].FileName, attaches[i].Data); }
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
Spire.PDF for .NET是独立的PDF控件,用于.NET程序中创建、编辑和操作PDF文档
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢