提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:李显亮|2019-08-02 11:51:36.770|阅读 361 次
概述:Aspose.PDF for .NET是一种高PDF处理和解析API,用于在跨平台应用程序中执行文档管理和操作任务。API可以轻松用于生成、修改、转换、渲染、保护和打印PDF文档,而无需使用Adobe Acrobat。本文介绍了如何添加和删除注释。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
Aspose.PDF for .NET是一种高PDF处理和解析API,用于在跨平台应用程序中执行文档管理和操作任务。API可以轻松用于生成、修改、转换、渲染、保护和打印PDF文档,而无需使用Adobe Acrobat。此外,API还提供PDF压缩选项,表格创建和操作,图形和图像功能,广泛的超链接功能,印章和水印任务,扩展的安全控制和自定义字体处理。
在接下来的系列教程中,将为开发者带来Aspose.PDF for .NET的一系列使用教程,例如进行文档间的转换,如何标记PDF文件,如何使用表单和图表等等。
PDF文档中的注释包含在Page对象的Annotations集合中。此集合仅包含该单个页面的所有注释:每个页面都有自己的Annotations集合。要向特定页面添加注释,请Annotations使用该Add方法将其添加到该页面的集合中。要将SWF文件作为注释包含在PDF文档中,请使用命名空间中的ScreenAnnotation类Aspose.PDF.InteractiveFeatures.Annotations。
ScreenAnnotation 有三个参数:
要添加SWF文件作为注释:
下面的代码片段向您展示了如何在PDF页面中添加SWF注释:
//指向documents目录的路径 string dataDir = RunExamples.GetDataDir_AsposePdf_Annotations(); // 打开PDF文件 Document doc = new Document(dataDir + "AddSwfFileAsAnnotation.pdf"); // 获取需要添加注释的页面的引用 Page page = doc.Pages[1]; // 使用.swf多媒体文件作为参数创建ScreenAnnotation对象 ScreenAnnotation annotation = new ScreenAnnotation(page, new Aspose.Pdf.Rectangle(0, 400, 600, 700), dataDir + "input.swf"); // 将注释添加到页面的注释集合中 page.Annotations.Add(annotation); dataDir = dataDir + "AddSwfFileAsAnnotation_out.pdf"; //保存带有注释的更新PDF文档 doc.Save(dataDir);
一个Page对象的AnnotationCollection集合包含对特定页面的所有注释。要从页面中删除所有注释,请调用集合的Delete方法AnnotationCollectoin。
以下代码段显示了如何从特定页面删除所有注释:
// 文档目录的路径 string dataDir = RunExamples.GetDataDir_AsposePdf_Annotations(); //打开文档 Document pdfDocument = new Document(dataDir + "DeleteAllAnnotationsFromPage.pdf"); //删除特定注释 pdfDocument.Pages[1].Annotations.Delete(); dataDir = dataDir + "DeleteAllAnnotationsFromPage_out.pdf"; //保存更新的文档 pdfDocument.Save(dataDir);
要从PDF中删除特定注释,请调用AnnotationCollection集合的Delete方法。此集合属于该Page对象。该Delete方法需要您要删除的注释的索引。然后,保存更新的PDF文件。以下代码段显示了如何删除特定注释:
// 文档目录的路径 string dataDir = RunExamples.GetDataDir_AsposePdf_Annotations(); //打开文档 Document pdfDocument = new Document(dataDir + "DeleteParticularAnnotation.pdf"); //删除特定注释 pdfDocument.Pages[1].Annotations.Delete(1); dataDir = dataDir + "DeleteParticularAnnotation_out.pdf"; // 保存更新的文档 pdfDocument.Save(dataDir);
Aspose.PDF允许您从整个文档或给定页面获取注释。要从PDF文档中的页面获取所有注释,请遍历AnnotationCollection所需页面资源的集合。以下代码段显示了如何获取页面的所有注释:
//文档目录的路径 string dataDir = RunExamples.GetDataDir_AsposePdf_Annotations(); //打开文档 Document pdfDocument = new Document(dataDir + "GetAllAnnotationsFromPage.pdf"); //遍历所有注释 foreach (MarkupAnnotation annotation in pdfDocument.Pages[1].Annotations) { //获取注释属性 Console.WriteLine("Title : {0} ", annotation.Title); Console.WriteLine("Subject : {0} ", annotation.Subject); Console.WriteLine("Contents : {0} ", annotation.Contents); }
注释与单个页面相关联并存储在Page对象的AnnotationCOllection集合中。要获取特定注释,请指定其索引。例如,这返回一个Annotation需要转换为特定注释类型的对象TextAnnotation。以下代码段显示了如何获取特定注释及其属性:
//文档目录的路径 string dataDir = RunExamples.GetDataDir_AsposePdf_Annotations(); //打开文档 Document pdfDocument = new Document(dataDir + "GetParticularAnnotation.pdf"); //获取特定注释 TextAnnotation textAnnotation = (TextAnnotation)pdfDocument.Pages[1].Annotations[1]; //获取注释属性 Console.WriteLine("Title : {0} ", textAnnotation.Title); Console.WriteLine("Subject : {0} ", textAnnotation.Subject); Console.WriteLine("Contents : {0} ", textAnnotation.Contents);
Aspose.PDF允许您从整个文档或给定页面获取注释资源。以下代码片段显示了如何获取注释资源作为输入PDF文件的FileSpecification对象:
// 文档目录的路径 string dataDir = RunExamples.GetDataDir_AsposePdf_Annotations(); //打开文档 Document doc = new Document(dataDir + "AddAnnotation.pdf"); //创建注释 ScreenAnnotation sa = new ScreenAnnotation(doc.Pages[1], new Rectangle(100, 400, 300, 600), dataDir + "AddSwfFileAsAnnotation.swf"); doc.Pages[1].Annotations.Add(sa); //保存文档 doc.Save(dataDir + "GetResourceOfAnnotation_Out.pdf"); //打开文档 Document doc1 = new Document(dataDir + "GetResourceOfAnnotation_Out.pdf"); //获取注释的操作 RenditionAction action = (doc.Pages[1].Annotations[1] as ScreenAnnotation).Action as RenditionAction; //获取演绎动作的再现 Rendition rendition = ((doc.Pages[1].Annotations[1] as ScreenAnnotation).Action as RenditionAction).Rendition; //媒体剪辑 MediaClip clip = (rendition as MediaRendition).MediaClip; FileSpecification data = (clip as MediaClipData).Data; MemoryStream ms = new MemoryStream(); byte[] buffer = new byte[1024]; int read = 0; //可以在FileSpecification.Contents中访问媒体数据 Stream source = data.Contents; while ((read = source.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, read); } Console.WriteLine(rendition.Name); Console.WriteLine(action.RenditionOperation);
*想要购买Aspose.PDF for .NET正版授权的朋友可以了解详情哦~
欢迎加入ASPOSE技术交流QQ群,各类资源及时分享,技术问题交流讨论!(扫描下方二维码加入群聊)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢