提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:李显亮|2020-10-20 11:07:46.837|阅读 573 次
概述:在大多数情况下,基本的转换选项集效果很好。但是,今天,我们将讨论将PDF转换为PPTX的一些高级技巧——处理注释或评论,将装饰图形与内容图像分开等内容。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
在前一篇教程中,我们讨论了如何在.NET应用程序中使用C#将PDF文件转换为PowerPoint PPT / PPTX演示文稿。在大多数情况下,基本的转换选项集效果很好。但是,在本文中,将讨论将PDF转换为PPTX的一些高级技巧:
目前,.NET版Aspose.PDF升级到v20.10版,新增支持ZUGFeRD附件,优化添加签名功能吗,修复XPS到PDF转换异常等诸多Bug问题,感兴趣的朋友可点击下方按钮下载最新版。
当告诉别人一些事情并使用演示文稿时,我还喜欢在幻灯片上做笔记,画箭头,用几何形状绘制重音等。
很简单,可以在Adobe Reader DC或Microsoft Edge中打开PDF文件,然后使用铅笔工具。默认情况下,Adobe Reader使用红色铅笔。
而Microsoft Edge使用蓝色的。
如果将此类PDF文件转换为PPTX演示文稿,则所有注释都将传输到PPTX文件。
根据PDF标准,我们正在处理页面的内容和名为注释的其他元素。让我们写一小段C#代码来研究此类文档中存在哪些类型的注释。
private static void ShowAnnotations() { var inputFileName = @"C:\tmp\Presentations\Sample Screen.pdf"; var document = new Aspose.Pdf.Document(inputFileName); foreach (var page in document.Pages) { foreach (var annotation in page.Annotations) { Console.WriteLine($"{page.Number} {annotation.FullName} {annotation.AnnotationType} {annotation.Color}"); } } }
执行后,我们将得到如下结果:
这意味着PDF页面上有三种类型的注释:
因此,为了删除PDF中的其他图形,我们应该删除Ink和Square注释。以下是执行此操作的步骤。
下面的C#代码段显示了删除PDF到PPTX转换中的注释的一种可能方法:
private static void RemoveAnnotations(Page page, Aspose.Pdf.Annotations.AnnotationType annotationType) { var annotations = page.Annotations.Where(a => a.AnnotationType == annotationType).ToArray(); foreach (var annotation in annotations) { page.Annotations.Delete(annotation); } }
如上所述,演示者可以使用不同的工具和颜色进行注释,并且我们可以(如果需要)调整最后一个样本。例如,我们只能删除红色(颜色代码#E52237)注释或某些演示者的注释。
让我们尝试另一种方法来改善PDF到PPTX转换中的图形内容。
在将PDF转换为PPTX时,通常将PDF文件中的所有图像分组到输出中的单个背景图像中。这并不总是很方便,而且.NET的Aspose.PDF具有一种特殊的模式,可以在将PDF转换为PPTX时更改转换器的行为。
要启用此模式,可以将SeparateImages属性设置为true。以下代码片段显示了如何在C#中将PDF转换为PPTX时使用此选项:
private static void ConvertPDFtoPPTX(string inputFileName, string outputFileName) { var document = new Aspose.Pdf.Document(inputFileName); foreach (var page in document.Pages) { RemoveAnnotations(page, Pdf.Annotations.AnnotationType.Ink); RemoveAnnotations(page, Pdf.Annotations.AnnotationType.Square); } var options = new Aspose.Pdf.PptxSaveOptions { SeparateImages = true, //CustomProgressHandler = ShowProgressOnConsole }; document.Save(outputFileName, options); }
因此,来自先前示例的幻灯片将被分为3个图像。
应该注意的是,并非总是能够准确地将背景图像与内容图像分开。因此,转换器有时可能会出错,并在内容中添加额外的元素。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至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幢