当前位置: 首页 > news >正文

FreeCut:一个支持PDF自适应裁剪的PPT插件

需求分析

前不久,有朋友在 FreeHub 上许了个愿,想要一款 PPT 插件,实现对页面的快速裁剪导出。

image.png

大部分科研人都会用 PPT 来进行绘图,期刊会议往往对图像质量有较高要求,直接截图插入会导致图像不够清晰。

因此,专业做法是直接将 PPT 打印成 PDF,但用 PPT 自带的打印功能,存在两个问题:

  • 无法对指定页面进行单独打印,一次性默认会打印所有页面
  • 导出的页面没法直接插到论文里,因为周边往往存在冗余白边,需要用 DC 等PDF编辑工具进行二次裁剪

image.png

整理图片的过程是相对繁琐的,特别是当图片还比较多的情况下。

为了解决这个问题,我做了 FreeCut 这个PPT插件,它能够实现将几分钟才能实现的步骤压缩到几秒钟完成。

FreeCut 下载地址(windows):https://github.com/zstar1003/FreeCut/releases/download/v1.0.0/FreeCut_setup.zip
FreeCut 开源地址:https://github.com/zstar1003/FreeCut

使用方式

下载安装包之后,运行FreeCutInstaller.exe打开安装器。

image.png

点击安装插件,会自动进行安装。

image.png

安装完后,打开PPT,可以看到 FreeCut 这个选项卡。

image.png

在设置界面中,可以进行以下参数的设置:

  • 边距设置:用来调节裁剪之后的边距大小
  • 自动检测设置:开启则自动检测边界并裁剪,关闭则导出原图;边界是通过像素颜色判断,确定内容的最大外接矩形,默认背景是白色背景,也可以修改为其它颜色
  • 导出设置:DPI(每英寸点数)是衡量图像分辨率的单位,DPI越高文件分辨率越大,也越清晰,但文件体积会更高。

image.png

如果是白色背景的PPT,无需修改设置,可以直接点击待导出的页,然后点击导出PDF

image.png

导出的PDF会自动把多余的白边裁剪掉,可直接将其插入到论文中。

image.png

开发经验总结

这次需求不复杂,本以为用 AI 辅助能很快解决,但实际踩了不少坑,浪费了很多Tokens,这一节进行复盘总结。

PPT 插件开发方式

开发 PPT 插件主要有以下三种方式,如下表所示。

插件类型主要技术适用平台示例功能
Office Add-in(现代网页插件)HTML + JS + Office.jsPowerPoint Web / Windows / Mac / iPadAI 辅助排版、自动生成PPT内容、批量替换文字
VSTO 插件C# + .NETWindows 桌面版 PowerPoint增加菜单按钮、操作幻灯片对象、读写文件
Python 自动化脚本python-pptx 库无UI插件,命令行或Web端批量生成、编辑幻灯片内容

这三种方式中,只有 VSTO 插件能够对幻灯片对象的完整访问能力,从而实现 PDF文件的导出,因此只能采用这条技术路线,在用AI辅助时,需要优先明确这一点,否则它会选取它更擅长的Office Add-in这种方式。

VSTO 模板初始化

在选择完技术路线后,让AI放手去做,然而,它的对VSTO相关的知识是不足的,导致产生的内容无法被PPT正确加载。

因此,需要用 VS 去安装相关的工具集,并选择一套模板进行初始化,这样能够保证构建的 COM 加载项是正常的。

image.png

导出PDF的问题

导出PDF时,遇到了一个PDF文件尺寸异常的问题:图片显示范围和 PDF画布范围很难在不同 DPI 下均保持映射关系的准确,AI 一直在两个错误方案中反复横跳。

查阅相关资料,发现 .NET 中有个 2D 图形库 SkiaSharp 是个现成的工具,它支持生成矢量 PDF 文件,告诉 AI 这个信息之后,问题很快得到解决。

http://www.dtcms.com/a/506752.html

相关文章:

  • 【SPIE/EI/Scopus检索】2026 年第三届数据挖掘与自然语言处理国际会议 (DMNLP 2026)
  • Vue 概述以及基本使用
  • Nature Genetics|空间蛋白组联合空间转录组发现非小细胞肺癌免疫治疗响应的预测标志物
  • 2025-ICML-Enhancing Spectral GNNs: From Topology and Perturbation Perspectives
  • Mac版PDF Squeezer v4.5.1安装教程(DMG文件下载+详细步骤)​
  • PDF处理控件Aspose.PDF教程:在C#中将PDF转换为Base64
  • 《恋爱先生》电视剧总结
  • Spring Boot实现日志链路追踪
  • 孝义网站建设南京网站销售
  • 网站后台都有哪些青海网站建设价格
  • 0.3、AI Agent 知识库、召回、Recall、Embedding等 相关的概念
  • 外卡收单那点事儿之Visa篇(3)
  • 虚拟机安装ikuai系统相关配置
  • VTK开发笔记(七):示例Cone4,一数据源多演员模式,在Qt窗口中详解复现对应的Demo
  • Java开发—JDK的安装和版本管理(macOS)
  • 初次使用remix
  • 文献阅读翻译工具的选择
  • YOLOv1原理介绍
  • c 网站建设教程win7 搭建iss网站
  • 镇江软件公司南宁网站建设优化案例
  • 火电厂VR安全培训系统有哪些:广州华锐互动构建 “安全元宇宙” 生态
  • 【计算机科学与应用】基于多光谱成像与边缘计算的物流安全风险预警模式及系统实现
  • 分布式架构未来趋势:从云原生到智能边缘的演进之路
  • 云原生系列Bug修复:Docker镜像无法启动的终极解决方案与排查思路
  • 元宇宙赋能智慧城市:重构城市治理与生活新生态
  • 算法笔试题具体在考什么领域的知识?计算机科学领域的基础:数据结构,计算机组成原理,操作系统,计算机网络
  • HarmonyOS安全与隐私:权限申请与敏感数据保护实战
  • 做促销的网站珠海网站建设厚瑜
  • 基于STM32F103ZET6实现6路舵机控制
  • 【案例实战】鸿蒙分布式智能办公应用的架构设计与性能优化