PDF转文本以及转图片:itextpdf

文章目录

🐒个人主页:信计2102罗铠威

🏅JavaEE系列专栏

📖前言:

PDF转文本的插件常用的有:pdfbox ,itextpdf 和 spire.pdf 这几个,

🎀 1. itextpdf

1.1导入itextpdf的maven依赖
xml 复制代码
        <!--2.itexpdf依赖-->
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.13.3</version>
        </dependency>
1.2 提取文本代码
java 复制代码
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. 关闭PdfReader
            reader.close();
        System.out.println("------------------------pdf提取文本结束------------------------------");
        }
}
1.3 pdf转换成图片代码(本地图片地址还是线上PDF的URL地址均支持)
java 复制代码
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文件地址url
    public 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 转换为 PDDocument
        PDDocument document = PDDocument.load(pdfStream);

        // 创建 PDFRenderer 对象
        PDFRenderer pdfRenderer = new PDFRenderer(document);

        // 选择第一页面来生成图片
        // 可以根据需要改成遍历所有页面并保存
        BufferedImage bufferedImage = pdfRenderer.renderImageWithDPI(0, 300); // 0 表示第一页,300 DPI 提供高质量图像

        // 将 BufferedImage 转换为 InputStream
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        ImageIO.write(bufferedImage, "PNG", byteArrayOutputStream);
        document.close();
        // 返回一个新的 InputStream
        return 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();
    }

}
相关推荐
海带紫菜菠萝汤16 小时前
免费在线翻译器横评:2026年6款PDF翻译工具对比
人工智能·python·pdf
SunnyDays101117 小时前
C# 加密和解密 PDF:设置密码、AES 加密及操作权限
pdf·c#·加密 pdf·解除 pdf 密码·pdf 权限设置·pdf 文档安全
SamChan9018 小时前
WebSocket实现PDF翻译进度实时推送:Go后端+React前端的完整方案
前端·websocket·pdf·c#·react·机器翻译
森叶2 天前
拆解 PDF 翻译引擎:表格纹丝不动、长语言自动缩放、图片文字 AI 重绘背后的工程
人工智能·pdf
AI创界者2 天前
MinerU v3.4.4 离线部署实战:PDF/PPT/图片一键转 Markdown,低至 4G 显存/纯 CPU 可用
pdf·powerpoint
cosinmz2 天前
图片转PDF:手机合同照片如何整理成规范PDF文件
pdf·pdf转换·图片转pdf·图片转pdf小程序
a1117762 天前
深入理解 AI Agent PDF(设计原理与工程实践 )
pdf
CCC65A8780D2C2 天前
PaddleOCR-VL-1.6图片PDF文档解析识别成文本工具,解压就能用,完全本地离线
pdf
桐桐桐2 天前
技术文档翻译实践:保留PDF表格与版式的几种方案
pdf·自动化
王莎莎-MinerU2 天前
别让 Agent 重读 PDF:文档解析要交付可缓存资产
网络·数据库·人工智能·驱动开发·缓存·pdf·ocr