PDF转文本以及转图片:itextpdf
文章目录
- 🐒个人主页:信计2102罗铠威
- 🏅JavaEE系列专栏
- 📖前言:
- 🎀 1. itextpdf
- 1.1导入itextpdf的maven依赖
- 1.2 提取文本代码
- 1.3 pdf转换成图片代码(本地图片地址还是线上PDF的URL地址均支持)
🐒个人主页:信计2102罗铠威
🏅JavaEE系列专栏
📖前言:
PDF转文本的插件常用的有:pdfbox ,itextpdf 和 spire.pdf 这几个,
🎀 1. itextpdf
1.1导入itextpdf的maven依赖
<!--2.itexpdf依赖--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</version></dependency>
1.2 提取文本代码
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
import java.io.*;public class Main_itextPdf {public static void main(String[] args) throws Exception {System.out.println("------------------------pdf提取文本开始------------------------------");// 2. 加载PDF文件File file = new File("C:/Users/Administrator/Desktop/罗铠威个人简历.pdf");PdfReader reader = new PdfReader(file.getAbsolutePath());// 3. 解析PDF文件,获取页面数据int page = 1; // 获取第一页String text = PdfTextExtractor.getTextFromPage(reader, page);System.out.println(text);// 4. 关闭PdfReaderreader.close();System.out.println("------------------------pdf提取文本结束------------------------------");}
}
1.3 pdf转换成图片代码(本地图片地址还是线上PDF的URL地址均支持)
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.util.Scanner;public class Main_itextPdf {public static void main(String[] args) throws Exception {System.out.println("------------------------pdf转图片开始------------------------------");
// InputStream inputStream = readPdfFromUrl("http://minio.xxxx/xxxx.pdf");//线上的pdf文件InputStream inputStream = new FileInputStream("C:/Users/Administrator/Desktop/罗铠威个人简历.pdf") ;byte[] bytes = streamToByte(inputStream);InputStream newStream = new ByteArrayInputStream(bytes);//将pdf流转换成png图片流InputStream imgStream = pdfToImg(newStream);//存储图片imgStream到桌面ImageIO.write(ImageIO.read(imgStream), "png", new File("C:/Users/Administrator/Desktop/1.png"));System.out.println("------------------------pdf转图片结束------------------------------");}//支持线上pdf文件地址urlpublic static InputStream readPdfFromUrl(String pdfUrl) throws IOException {URL url = new URL(pdfUrl);URLConnection connection = url.openConnection();BufferedInputStream bufferedInputStream = new BufferedInputStream(connection.getInputStream());return bufferedInputStream;}public static ByteArrayInputStream pdfToImg(InputStream pdfStream) throws Exception {// 将 InputStream 转换为 PDDocumentPDDocument document = PDDocument.load(pdfStream);// 创建 PDFRenderer 对象PDFRenderer pdfRenderer = new PDFRenderer(document);// 选择第一页面来生成图片// 可以根据需要改成遍历所有页面并保存BufferedImage bufferedImage = pdfRenderer.renderImageWithDPI(0, 300); // 0 表示第一页,300 DPI 提供高质量图像// 将 BufferedImage 转换为 InputStreamByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();ImageIO.write(bufferedImage, "PNG", byteArrayOutputStream);document.close();// 返回一个新的 InputStreamreturn new ByteArrayInputStream(byteArrayOutputStream.toByteArray());}public static byte[] streamToByte(InputStream inputStream) throws Exception {ByteArrayOutputStream buffer = new ByteArrayOutputStream();int nRead;byte[] data = new byte[1024];while ((nRead = inputStream.read(data, 0, data.length)) != -1) {buffer.write(data, 0, nRead);}buffer.flush();return buffer.toByteArray();}}
相关文章:
PDF转文本以及转图片:itextpdf
文章目录 🐒个人主页:信计2102罗铠威🏅JavaEE系列专栏📖前言:🎀 1. itextpdf1.1导入itextpdf的maven依赖1.2 提取文本代码1.3 pdf转换成图片代码(本地图片地址还是线上PDF的URL地址均支持&#…...
AnaConda下载PyTorch慢的解决办法
使用Conda下载比较慢,改为pip下载 复制下载链接到迅雷下载 激活虚拟环境,安装whl,即可安装成功 pip install D:\openai.wiki\ChatGLM2-6B\torch-2.4.1cu121-cp38-cp38-win_amd64.whl...
移动端自动化测试Appium-java
一、Appium的简介 移动端的自动化测试框架 模拟人的操作进行功能自动化常用于功能测试、兼容性测试 跨平台的自动化测试 二、Appium的原理 核心是web服务器,接受客户端的连接,接收客户端的命令,在手机设备上执行命令,收集命令…...
IO: 作业:Day1
思维导图 main.c #include"student.h" int main(int argc, const char *argv[]) { stuPtr hcreat(); int n0; add_node(h); add_node(h); add_node(h); show(h); save(h,"student.txt"); stuPtr ptrc…...
ue5 替换角色的骨骼网格体和动画蓝图
一开始动画蓝图,骨骼网格体都是用的女性角色 现在把它换成男性 编译 保存 运行 把动画类换成ABP_Manny 进入ABP_Manny中 进入到idle 找到这个拖进来 编译 就变成站着端枪 运行一下,没有问题...
el-cascader 树状选择-点击父级禁用子级
背景:项目上需要实现树状选择,点击父级禁用子级的功能,element组件本身没有该配置项说明:需要实现几个功能点:点击父级禁用子级;再次点击取消禁用;仅回填所选级;上下级不关联实现代码…...
AWS re:Invent 的创新技术
本月早些时候,Amazon 于 12 月 1 日至 5 日在内华达州拉斯维加斯举行了为期 5 天的 re:Invent 大会。如果您从未参加过 re:Invent 会议,那么最能描述它的词是“巨大”——不仅从与会者人数(60,000 人)来看&…...
PHP7和PHP8的最佳实践
php 7 和 php 8 的最佳实践包括:使用类型提示以避免运行时错误;利用命名空间组织代码并避免命名冲突;采用命名参数、联合类型等新特性增强可读性;用错误处理优雅地处理异常;关注性能优化,如避免全局变量和选…...
Debian、Ubuntu 22.04和ubuntu 24.04国内镜像源(包括 docker 源)
Debian 更换国内清华源 1、备份原文件mv /etc/apt/sources.list /etc/apt/sources.list.old 2、写入新源,以下是 Debian 11 的: cat > /etc/apt/sources.list << EOF deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib…...
点亮一个esp32 的led
最近入了一个ESP32 兄弟们,这玩意还可以,买来肯定是给它点亮啊对吧 我就是点灯侠🎇 😭千万不要不接天线啊,不然你会一直找不到你的wifi 1.点灯第一步你得有IDE Arduino 就是这个绿东西 可是怎么下载安装呢ÿ…...
C++ shared_ptr进一步认知,为什么引用计数>2退出作用域都可以调用析构
1.使用智能指针需要#include <memeroy> 2.上代码: #include <memory> #include <iostream> using namespace std; struct lifePeriod {lifePeriod():a(1){cout << "无参构造!" << endl;}virtual ~lifePeriod(…...
JavaScript代码片段二
见过不少人、经过不少事、也吃过不少苦,感悟世事无常、人心多变,靠着回忆将往事串珠成链,聊聊感情、谈谈发展,我慢慢写、你一点一点看...... JavaScript统计文字个数、特殊字符转义、动态插入js代码、身份证验证 统计文字个数 f…...
【计算机视觉】单目深度估计模型-Depth Anything-V2
概述 本篇将简单介绍Depth Anything V2单目深度估计模型,该模型旨在解决现有的深度估计模型在处理复杂场景、透明或反射物体时的性能限制。与前一代模型相比,V2版本通过采用合成图像训练、增加教师模型容量,并利用大规模伪标签现实数据进行学…...
Servlet 和 Spring MVC:区别与联系
前言 在 Java Web 开发中,Servlet 和 Spring MVC 是两个重要的技术。Servlet 是 Java Web 的基础组件,而 Spring MVC 是一个高级 Web 框架,建立在 Servlet 的基础之上,提供了强大的功能和易用性。这篇文章将从定义、原理、功能对…...
【期末复习】三、内存管理
1.物理内存管理 空闲内存管理方式主要分为:等长划分和不等长划分。 内存管理方式 单一连续分区 基本思想:一段时间内只有一个进程在内存。 特点:简单,内存利用率低, 有三种不同的布局: 固定分区 把内存空间分割成若干区域, 称为分区。 每个分区的大小可以相同也可…...
Microsoft Azure Cosmos DB:全球分布式、多模型数据库服务
目录 前言1. Azure Cosmos DB 简介1.1 什么是 Azure Cosmos DB?1.2 核心技术特点 2. 数据模型与 API 支持2.1 文档存储(Document Store)2.2 图数据库(Graph DBMS)2.3 键值存储(Key-Value Store)…...
【Docker】安装registry本地镜像库,开启Https功能
下载镜像 docker pull registry:2 需要启动https功能,就要生成服务端的自签名的证书和私钥,以及在docker客户端安装这个经过签名的证书。 第一步:生成公私钥信息,第二步,制作证书签名申请文件, 第三步&…...
JUC--线程池
线程池 七、线程池7.1线程池的概述7.2线程池的构建与参数ThreadPoolExecutor 的构造方法核心参数线程池的工作原理 Executors构造方法newFixedThreadPoolnewCachedThreadPoolnewSingleThreadExecutornewScheduledThreadPool(int corePoolSize) 为什么不推荐使用内置线程池&…...
后端Java开发:第十一天
第十一天:方法重载 - 理解与应用 今天我们继续深入 Java 的世界,讨论 Java 中的 方法重载(Method Overloading)。你可能会想,什么是方法重载?简单来说,方法重载允许你在一个类中定义多个同名方…...
基于 GEE 的长时间序列 Landsat 5 影像下载
目录 1 完整代码 2 运行结果 1 完整代码 var LT5 ee.ImageCollection("LANDSAT/LT05/C01/T1"),imageVisParam {"opacity":1,"bands":["B4","B3","B2"],"gamma":1},roi ee.FeatureCollection(&quo…...
SITS2026现场演示:1台边缘设备+3毫秒延迟完成千亿参数模型本地微调——联邦大模型轻量化推理的5个硬核实现细节
第一章:SITS2026现场演示:1台边缘设备3毫秒延迟完成千亿参数模型本地微调——联邦大模型轻量化推理的5个硬核实现细节 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026主会场边缘计算展区,一台搭载NVIDIA Jetson AGX Orin…...
ATCODER ABC C题解毖
这,是一个采用C精灵库编写的程序,它画了一幅漂亮的图形: 复制代码 #include "sprites.h" //包含C精灵库 Sprite turtle; //建立角色叫turtle void draw(int d){for(int i0;i<5;i)turtle.fd(d).left(72); } int main(){ …...
macOS用户必看:BongoCat键盘输入无响应?3步权限配置终极指南
macOS用户必看:BongoCat键盘输入无响应?3步权限配置终极指南 【免费下载链接】BongoCat 🐱 跨平台互动桌宠 BongoCat,为桌面增添乐趣! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 你是否遇到过这…...
intv_ai_mk11GPU利用率提升:通过温度/Top P协同调优降低冗余计算负载
intv_ai_mk11 GPU利用率提升:通过温度/Top P协同调优降低冗余计算负载 1. 模型概述与性能挑战 intv_ai_mk11是基于Llama架构的中等规模文本生成模型,擅长通用问答、文本改写和简短创作等任务。在实际部署中,我们发现当温度(Temperature)和T…...
3个关键步骤:如何用XXMI启动器统一管理多款热门游戏模组
3个关键步骤:如何用XXMI启动器统一管理多款热门游戏模组 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 你是否曾经为不同游戏的模组管理感到头疼?每个游…...
C语言编程实战题库:从入门到精通的必备练习
1. 为什么C语言需要实战题库? 我第一次接触C语言是在大学计算机系的入门课上。当时老师讲完基础语法后,直接让我们写一个简单的计算器程序。结果全班80%的同学对着空白的编辑器发呆,完全不知道从何下手。这个经历让我深刻认识到:光…...
Asian Beauty Z-Image Turbo 微信小程序前端开发:实时图像生成与分享
Asian Beauty Z-Image Turbo 微信小程序前端开发:实时图像生成与分享 最近在捣鼓一些有意思的AI应用,发现把大模型的能力搬到移动端,特别是像微信小程序这样的轻量级平台上,能玩出很多新花样。今天想和大家聊聊,怎么给…...
Win11Debloat:免费Windows系统优化终极指南,一键提升51%运行速度
Win11Debloat:免费Windows系统优化终极指南,一键提升51%运行速度 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other change…...
告别硬件解码芯片?深度对比英飞凌TC3xx DSADC软解码方案与传统方案的优劣
英飞凌TC3xx DSADC软解码方案与传统硬件解码芯片的深度技术选型指南 在新能源汽车电机控制和工业伺服驱动系统的设计中,旋转变压器(Resolver)作为核心位置传感器,其解码方案的选择直接影响系统性能、成本和开发效率。传统方案依赖…...
Qwen3-VL-4B Pro快速部署:单命令拉取镜像+一键启动服务
Qwen3-VL-4B Pro快速部署:单命令拉取镜像一键启动服务 想体验一个能看懂图片、还能跟你聊天的AI吗?今天给大家介绍一个开箱即用的视觉语言模型服务——Qwen3-VL-4B Pro。你不用懂复杂的深度学习框架,也不用折腾环境配置,只需要一…...
