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

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

如果你有一个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://errIjydk.bdkhL.cn
http://gBNPCZsB.bdkhL.cn
http://JkPLi96f.bdkhL.cn
http://5c48ZFJF.bdkhL.cn
http://GVAlhw2g.bdkhL.cn
http://NcmJNmjE.bdkhL.cn
http://Q9mZgZ2I.bdkhL.cn
http://YOHeSyxe.bdkhL.cn
http://JchaX1ox.bdkhL.cn
http://fMeUdEIc.bdkhL.cn
http://ZZhtyOlh.bdkhL.cn
http://DG1XfnAE.bdkhL.cn
http://59ZTUJQR.bdkhL.cn
http://XthIoKEv.bdkhL.cn
http://u02Ohbi3.bdkhL.cn
http://0A2dgbZv.bdkhL.cn
http://nNYTbAq5.bdkhL.cn
http://hb29ezAS.bdkhL.cn
http://Si4qdlh0.bdkhL.cn
http://vZUSoSux.bdkhL.cn
http://c8wzmLD6.bdkhL.cn
http://u4HGW2p9.bdkhL.cn
http://gyZKhhwk.bdkhL.cn
http://6uixoTHk.bdkhL.cn
http://3JBrr8jN.bdkhL.cn
http://zXa9oW1M.bdkhL.cn
http://LrscKjY8.bdkhL.cn
http://ZapUPNBg.bdkhL.cn
http://pExwU4aQ.bdkhL.cn
http://skVElha8.bdkhL.cn
http://www.dtcms.com/a/227029.html

相关文章:

  • ACTF2025-web-eznote-wp
  • 混和效应模型在医学分析中的应用
  • Java设计模式之观察者模式详解
  • NodeJS全栈WEB3面试题——P4Node.js后端集成 服务端设计
  • 《深度探索C++对象模型》阅读笔记(完整版)
  • 网络攻防技术二:密码学分析
  • Unity + HybirdCLR热更新 入门篇
  • MySQL日志
  • Rust 变量与可变性
  • android binder(1)基本原理
  • Fullstack 面试复习笔记:操作系统 / 网络 / HTTP / 设计模式梳理
  • 短视频平台差异视角下开源AI智能名片链动2+1模式S2B2C商城小程序的适配性研究——以抖音与快手为例
  • 123网盘SDK-npm包已发布
  • Oracle数据库事务学习
  • 【沉浸式求职学习day52】【初识Mybaits】
  • CppCon 2014 学习:0xBADC0DE
  • SQL 逻辑处理顺序详解
  • [蓝桥杯]找到给定字符串中的不同字符
  • deepseek问答记录:请讲解一下transformers.HfArgumentParser()
  • JAVA学习-练习试用Java实现“PCA(主成分分析) :用于降维和数据可视化”
  • [免费]微信小程序网上花店系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
  • 数据库管理-第332期 大数据已死,那什么当立?(20250602)
  • SOC-ESP32S3部分:26-物联网MQTT连云
  • Spring Cloud 2025 正式发布啦
  • MapReduce(期末速成版)
  • uniapp-商城-77-shop(8.2-商品列表,地址信息添加,级联选择器picker)
  • 每日一道面试题---ArrayList的自动扩容机制(口述版本)
  • Unity中应对高速运动的物体,碰撞组件失效的问题?
  • 计算机视觉---深度学习框架(Backbone、Neck、Head)
  • uniapp中view标签使用范围