【保姆级教程】PDF批量转图文笔记

article/2025/6/30 0:48:49

如果你有一个PDF文档,然后你想把它发成图文笔记emmm,最好再加个水印,你会怎么做?

其实也不麻烦,打开PDF文档,挨个截图,然后打开PS一张一张图片拖进去,再把水印图片拖进去,一张一张导出,搞定~

但但但是,你是一个程序员呀,还是会用cursor的程序员,所以(●°u°●) 」开干~~

某天下午你正摸着鱼,有个叫产品经理的物种突然出现,给你发了个PDF:"把这个用户手册做成小红书图文笔记,每页加统一水印,很急很急哦!"

你盯着200页的文档瞳孔地震,然后安慰了下自己,其实也不太麻烦哈哈。。。

打开PDF文档,挨个截图,然后打开PS一张一张图片拖进去,再把水印图片拖进去,一张一张导出,搞定~

但但但但但但是!你摸着自己锃亮的程序员脑门(也可能是日渐稀疏的发际线),突然意识到:我可是一个程序员呀,还是会用AI的程序员,所以(●°u°●) 」开干~~

▋ 原始人 vs 赛博人 工作流对比

原始部落打法:

  1. 打开PDF→滚轮翻页→挨个截图(啊😭第37次忘记取消显示聊天窗口、啊这页截没截?不记得。。打开文件夹看看。。)
  2. 打开Photoshop:先导入截图,再拖水印,调整位置。。。
  3. 导出(编号到几来着?)

long time later。。。

而你是赛博程序员,操作不光要简单准确,还必须优雅:

打开Cursor,新建terminal,输入个提示词,然后回车~转身咖啡还没泡完,200张带水印的笔记整整齐齐躺在output文件夹里,甚至自动按文档名+编号整理完毕➡️关机下班(啊😭还要打卡,再坐一会吧)~

我们还是看下效果,这是原文档:

这是生成的图片

还加了水印!

二话不说,完整代码如下(记得请我喝咖啡哈哈(^^)):

package com.pdf2pic;import org.apache.pdfbox.rendering.ImageType;import java.io.File;/*** PDF转图片工具* 用于将指定文件夹下的PDF文件转换为图片*/
public class Pdf2PicConverter {public static void main(String[] args) {// 项目根目录下 java -jar target/pdf2pic-1.0-SNAPSHOT-jar-with-dependencies.jar pdfs outputif (args.length < 2) {System.out.println("用法: java -jar pdf2pic.jar <PDF源文件夹> <图片输出文件夹> [DPI] [格式]");System.out.println("  [DPI]: 可选参数,图片DPI值,默认为300");System.out.println("  [格式]: 可选参数,输出图片格式,默认为png");return;}String pdfFolderPath = args[0];String outputBasePath = args[1];// 解析可选参数float dpi = 300;String format = "png";if (args.length > 2) {try {dpi = Float.parseFloat(args[2]);} catch (NumberFormatException e) {System.out.println("警告: 无效的DPI值,使用默认值300");}}if (args.length > 3) {format = args[3];}try {System.out.println("PDF转图片工具启动...");System.out.println("PDF源文件夹: " + pdfFolderPath);System.out.println("图片输出文件夹: " + outputBasePath);System.out.println("图片DPI: " + dpi);System.out.println("图片格式: " + format);// 获取项目根目录下的水印图片File watermarkFile = new File("2.png");if (watermarkFile.exists()) {System.out.println("水印图片: " + watermarkFile.getAbsolutePath());} else {System.out.println("警告: 未找到水印图片 2.png");}// 创建转换器并设置参数PdfConverter converter = new PdfConverter().withDpi(dpi).withFormat(format).withImageType(ImageType.RGB);// 设置水印图片(如果存在)if (watermarkFile.exists()) {converter.withWatermark(watermarkFile);}// 执行批量转换converter.batchConvert(pdfFolderPath, outputBasePath, true);System.out.println("所有PDF文件处理完成!");} catch (Exception e) {System.out.println("处理过程中发生错误:");e.printStackTrace();}}
}


http://www.hkcw.cn/article/rWbCSvPDkk.shtml

相关文章

【机器学习|评价指标3】平均绝对误差(MAE)、平均绝对百分比误差(MAPE)、均方误差(MSE)、均方根误差(RMSE)详解,附代码。

【机器学习|评价指标3】平均绝对误差&#xff08;MAE&#xff09;、平均绝对百分比误差&#xff08;MAPE&#xff09;、均方误差&#xff08;MSE&#xff09;、均方根误差&#xff08;RMSE&#xff09;详解&#xff0c;附代码。 【机器学习|评价指标3】平均绝对误差&#xff0…

SpringBoot高校宿舍信息管理系统小程序

概述 基于SpringBoot的高校宿舍信息管理系统小程序项目&#xff0c;这是一款非常适合高校使用的信息化管理工具。该系统包含了完整的宿舍管理功能模块&#xff0c;采用主流技术栈开发&#xff0c;代码结构清晰&#xff0c;非常适合学习和二次开发。 主要内容 这个宿舍管理系…

【笔记】在 MSYS2 MINGW64 环境中安装构建工具链(CMake、GCC、Make)

&#x1f4dd; 在 MSYS2 MINGW64 环境中安装构建工具链&#xff08;CMake、GCC、Make&#xff09; ✅ 目标说明 记录在 MSYS2 的 MINGW64 工具链环境中&#xff0c;成功安装用于 C/C 构建的常用开发工具。 包括&#xff1a; GCC 编译器Make 构建系统CMake 跨平台构建工具基础开…

2_MCU开发环境搭建-配置MDK兼容Keil4和C51

MCU开发环境搭建-配置MDK兼容Keil4和C51 一、概述 本文以MDK-ARM V5.36版本基础介绍DMK-ARM工程兼容Keil4和C51的配置。 注:在阅读本文前,请先安装和配置完成MDK-ARM(Keil5)。 二、工具包下载 链接: https://pan.baidu.com/s/1Tu2tDD6zRra4xb_PuA1Wsw 提取码: 81pp 三、…

Redis部署架构详解:原理、场景与最佳实践

Redis部署架构详解&#xff1a;原理、场景与最佳实践 Redis作为一种高性能的内存数据库&#xff0c;在现代应用架构中扮演着至关重要的角色。随着业务规模的扩大和系统复杂度的提升&#xff0c;选择合适的Redis部署架构变得尤为重要。本文将详细介绍Redis的各种部署架构模式&a…

从0开始学习R语言--Day14--贝叶斯统计与结构方程模型

贝叶斯统计 在很多时候&#xff0c;我们经常会看到在统计分析中出现很多反直觉的结论&#xff0c;比如假如有一种病&#xff0c;人群中的患病率为1%&#xff0c;患者真患病时&#xff0c;检测结果为阳性的概率是99%&#xff0c;如果没有&#xff0c;则检测结果为阳性的概率是5…

免费的硬盘工具

—————【下 载 地 址】——————— 【​本章下载一】&#xff1a;https://pan.xunlei.com/s/VORkn5VgcUDScW2C5kyqIyX5A1?pwdw5db# 【​本章下载二】&#xff1a;https://pan.quark.cn/s/dc84a71de32a 【百款黑科技】&#xff1a;https://ucnygalh6wle.feishu.cn/wiki/…

【Python训练营打卡】day42 @浙大疏锦行

DAY 42 Grad-CAM与Hook函数 知识点回顾 1. 回调函数 2. lambda函数 3. hook函数的模块钩子和张量钩子 4. Grad-CAM的示例 作业&#xff1a;理解下今天的代码即可 Grad-CAM 在深度学习中&#xff0c;我们经常需要查看或修改模型中间层的输出或梯度。然而&#xff0c;标准的…

手机隐藏玩法有哪些?

1️⃣飞行模式充电更快 开启飞行模式后&#xff0c;手机会断开所有网络连接&#xff0c;减少后台数据传输&#xff0c;充电速度能提升 30% 以上 2️⃣关闭后台应用反而更耗电 频繁清理后台可能让耗电量增加 10%-20% &#xff0c;正确做法是让常用程序驻留后台 3️⃣闲置手机别…

浅写弱口令与命令爆破

#作者&#xff1a;允砸儿 #日期&#xff1a;乙巳青蛇年 五月初七 笔者从今天开始写各种的漏洞以及靶场演示&#xff0c;这一部分理论伴随着实践但还是实践比较重要。从这一部分开始我们就要找到对方电脑的漏洞进行渗透测试最终获取我们需要得到的信息。笔者就先拿最简单的弱…

B树和B+树

二叉搜索树和平衡二叉树 二叉搜索树&#xff0c;左子节点小于父节点发值&#xff0c;右子节点大于父节点的值。如果需要查找8&#xff0c;需要三次&#xff0c;而顺序查找需要6次。 同样是二叉搜索树&#xff0c;下图的情况查找效率会很低&#xff0c;从而引出平衡二叉树&#…

PDF 转 HTML5 —— HTML5 填充图形不支持 Even-Odd 奇偶规则?(第一部分)

在填充 PDF 中的图形时&#xff08;以及许多其他技术中&#xff09;&#xff0c;你可以选择使用 Even-Odd&#xff08;奇偶&#xff09; 或 Non-Zero&#xff08;非零&#xff09; 填充规则。 对于那些已经在想“你在说啥&#xff1f;”的朋友&#xff0c;别担心&#xff0c;我…

java反序列化: Transformer链技术剖析

Transformer链是CC反序列化漏洞的"执行引擎"&#xff0c;本文聚焦Transformer链的核心原理和实现机制&#xff0c;为后续完整利用链分析奠定基础。 一、Java命令执行与序列化限制 1.1 常规命令执行方式 Java中执行系统命令的标准方法是通过Runtime类&#xff1a; …

bismark OT CTOT OB CTOB 以及mapping后的bam文件中的XG,XR列的含义

首先&#xff0c;OT&#xff0c;OB&#xff0c;CTOT&#xff0c;CTOB都是描述测序reads的&#xff0c;而不是描述参考基因组的。 bisul-fate建库会将DNA双链文库中非甲基化的C转化成U。转化结束后&#xff0c;被转化的U和互补链的G并不配对。此时正链&#xff08;&#xff0c;…

【笔记】部署 AgenticSeek 项目问题:端口 8000 被占用

&#x1f6ab; 部署 AgenticSeek 项目问题二&#xff1a;端口 8000 被占用 &#x1f4a1; 问题描述 运行 api.py 时&#xff0c;控制台报错&#xff1a; ERROR: [Errno 10048] error while attempting to bind on address (0.0.0.0, 8000): 通常每个套接字地址(协议/网络地址…

javaEE->IO:

文件&#xff1a; 操作系统中会把很多 硬件设备 和 软件资源 抽象成“文件”&#xff0c;统一进行管理。 大部分谈到的文件&#xff0c;都是指 硬盘的文件&#xff0c;文件就相当于是针对“硬盘”数据的一种抽象 硬盘&#xff1a; 1.机械硬盘&#xff1a;便宜 2.固态硬盘&…

Python窗体编程技术详解

文章目录 1. Tkinter简介示例代码优势劣势 2. PyQt/PySide简介示例代码(PyQt5)优势劣势 3. wxPython简介示例代码优势劣势 4. Kivy简介示例代码优势劣势 5. PySimpleGUI简介示例代码优势劣势 技术对比总结选择建议 Python提供了多种实现图形用户界面(GUI)编程的技术&#xff0c…

短视频平台差异视角下开源AI智能名片链动2+1模式S2B2C商城小程序的适配性研究——以抖音与快手为例

摘要 本文以抖音与快手两大短视频平台为研究对象&#xff0c;从用户群体、内容生态、推荐逻辑三维度分析其差异化特征&#xff0c;并探讨开源AI智能名片链动21模式与S2B2C商城小程序在平台适配中的创新价值。研究发现&#xff0c;抖音的流量中心化机制与优质内容导向适合品牌化…

线程间和进程间是如何进行通信

进程是由线程组成的&#xff0c;进程所拥有的功能线程全部具有&#xff0c;线程所拥有的功能进程不一定有&#xff0c;所有线程的通信方式&#xff0c;进程不一定有。 线程之间的通信主要有两种&#xff1a;共享内存和信息传递 (端口&#xff0c;方法调用等等) 进程之间的通…

wow Warlock shushia [Dreadsteed]

wow Warlock shushia [Dreadsteed] 克索诺斯恐惧战马坐骑的任务 在《魔兽世界》怀旧服中&#xff0c;术士大马任务&#xff0c;也就是获得克索诺斯恐惧战马坐骑的任务&#xff0c;是一个既充满挑战又极具成就感的系列任务。以下是详细的任务流程&#xff1a; 一、任务起始 ‌…