精华内容
下载资源
问答
  • 本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取。使用工具:Free Spire.PDF for Java(免费版)Jar文件获取导入:方法1:通过官网方法2: 可通过 Java...

    本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取。

    使用工具:Free Spire.PDF for Java(免费版)

    Jar文件获取导入:

    方法1:通过官网

    方法2: 可通过

    20b81a4ecc55b294c6171959e1054504.gif

    Java代码示例

    【示例1】读取PDF中的文本

    import com.spire.pdf.*;

    import java.io.FileWriter;

    import java.io.IOException;

    public class ExtractText {

    public static void main(String[]args) throws Exception {

    //加载测试文档

    PdfDocument pdf = new PdfDocument("sample.pdf");

    //实例化StringBuilder类

    StringBuilder sb = new StringBuilder();

    //定义一个int型变量

    int index = 0;

    //遍历PDF文档中每页

    PdfPageBase page;

    for (int i= 0; i

    page = pdf.getPages().get(i);

    //调用extractText()方法提取文本

    sb.append(page.extractText(true));

    FileWriter writer;

    try {

    //将StringBuilder对象中的文本写入到txt

    writer = new FileWriter("ExtractText.txt");

    writer.write(sb.toString());

    writer.flush();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    pdf.close();

    }

    }

    文本读取效果:

    20b81a4ecc55b294c6171959e1054504.gif

    【示例2】读取PDF中的图片

    import com.spire.pdf.*;

    import javax.imageio.ImageIO;

    import java.awt.image.BufferedImage;

    import java.io.File;

    public class ExtractImg {

    public static void main(String[] args) throws Exception{

    //加载测试文档

    PdfDocument pdf = new PdfDocument();

    pdf.loadFromFile("test.pdf");

    //定义一个int型变量

    int index = 0;

    //遍历PDF每一页

    for (int i= 0;i< pdf.getPages().getCount(); i ++){

    //获取PDF页面

    PdfPageBase page = pdf.getPages().get(i);

    //使用extractImages方法获取页面上图片

    for (BufferedImage image : page.extractImages()) {

    //指定输出图片名称

    File output = new File( String.format("Image_%d.png", index++));

    //将图片保存为PNG格式文件

    ImageIO.write(image, "PNG", output);

    }

    }

    }

    }

    图片读取结果:

    20b81a4ecc55b294c6171959e1054504.gif

    (本文完)

    展开全文
  • 本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取。使用工具:Free Spire.PDF for Java(免费版)Jar文件获取导入:方法1:通过官网下载jar文件包。下载...

    本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取。

    使用工具:Free Spire.PDF for Java(免费版)

    Jar文件获取导入:

    方法1:通过官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入java程序。导入后如下图:

    4014782989c64a2b68de22090fc53fa6.png

    方法2: 可通过maven仓库安装导入。

    Java代码示例

    import com.spire.pdf.*;

    import javax.imageio.ImageIO;

    import java.awt.image.BufferedImage;

    import java.io.File;

    import java.io.FileWriter;

    import java.io.IOException;

    public class ExtractText {

    public static void main(String[]args) throws Exception {

    //加载测试文档

    PdfDocument pdf = new PdfDocument("sample.pdf");

    //实例化StringBuilder类

    StringBuilder sb = new StringBuilder();

    //定义一个int型变量

    int index = 0;

    //遍历PDF文档中每页

    PdfPageBase page;

    for (int i= 0; i

    page = pdf.getPages().get(i);

    //调用extractText()方法提取文本

    sb.append(page.extractText(true));

    FileWriter writer;

    try {

    //将StringBuilder对象中的文本写入到txt

    writer = new FileWriter("ExtractText.txt");

    writer.write(sb.toString());

    writer.flush();

    } catch (IOException e) {

    e.printStackTrace();

    }

    //调用extractImages方法获取图片

    for (BufferedImage image : page.extractImages()) {

    //指定输出图片名,指定图片格式

    File output = new File(String.format("Image_%d.png", index++));

    ImageIO.write(image, "PNG", output);

    }

    }

    pdf.close();

    }

    }

    文本和图片读取效果:

    8b96a6e3204d15b8d70812d3bb4e7506.png

    总结

    以上所述是小编给大家介绍的Java 读取PDF中的文本和图片的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    时间: 2019-07-16

    展开全文
  • 引入所需maven依赖org.icepdf.osicepdf-core6.2.2javax.mediajai_coreJAVA代码工具类packagecom.util;importcom.lowagie.text.pdf.PdfReader;importlombok.extern.slf4j.Slf4j;importorg.icepdf.core.pobjects....

    引入所需maven依赖

    org.icepdf.os

    icepdf-core

    6.2.2

    javax.media

    jai_core

    JAVA代码工具类package com.util;

    import com.lowagie.text.pdf.PdfReader;

    import lombok.extern.slf4j.Slf4j;

    import org.icepdf.core.pobjects.Document;

    import org.icepdf.core.pobjects.Page;

    import org.icepdf.core.util.GraphicsRenderingHints;

    import org.springframework.web.multipart.MultipartFile;

    import javax.imageio.ImageIO;

    import javax.servlet.http.HttpServletResponse;

    import java.awt.image.BufferedImage;

    import java.io.BufferedInputStream;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.OutputStream;

    import java.net.URLEncoder;

    import java.util.ArrayList;

    import java.util.Arrays;

    import java.util.List;

    import java.util.zip.ZipEntry;

    import java.util.zip.ZipOutputStream;

    //java 项目 www.fhadmin.org

    @Slf4j

    public class PdfToImageUtil {

    //支持文件格式

    public static final String SUPPORT_FILE = "pdf";

    //图片文件格式

    public static final String IMAGE_SUFFIX = "jpg"; //png

    //压缩文件格式

    public static final String ZIP_SUFFIX = "zip";

    //PDF是否为一页

    private static boolean isImage;

    /**

    * 对外的开放接口,用于将PDF文件转换为图片文件压缩包进行下载

    * @param file SpringMVC获取的图片文件

    */

    public static synchronized void pdfToTransformation(MultipartFile file, HttpServletResponse response) throws Exception {

    String fileName = file.getOriginalFilename();

    if(null == fileName) return;

    String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);

    log.info("文件名称:" + fileName + ",文件后缀:" + suffix);

    if(!SUPPORT_FILE.equals(suffix)) return;

    isImage = false;

    File imageFile = generateFile(file);

    log.info("文件生成成功!");

    downloadFile(imageFile, response);

    }

    /**

    * 将PDF文件转换为多张图片并放入一个压缩包中

    * @param file SpringMVC获取的图片文件

    * @return 图片文件压缩包

    * @throws Exception 抛出异常

    */

    private static File generateFile(MultipartFile file) throws Exception {

    String fileName = file.getOriginalFilename();

    if(null == fileName) return null;

    Document document = new Document();

    document.setByteArray(file.getBytes(), 0, file.getBytes().length, fileName);

    log.info("PDF页数:" + document.getNumberOfPages());

    isImage = 1 == document.getNumberOfPages();

    File imageReturnFile = null;

    List fileList = new ArrayList<>();

    for (int i = 0; i 

    BufferedImage image = (BufferedImage) document.getPageImage(i, GraphicsRenderingHints.SCREEN,

    Page.BOUNDARY_CROPBOX, 0F, 2.5F);

    File imageFile = new File((i + 1) + "." + IMAGE_SUFFIX);

    ImageIO.write(image, IMAGE_SUFFIX, imageFile);

    image.flush();

    if(isImage){

    imageReturnFile = imageFile;

    break;

    }

    fileList.add(imageFile);

    }

    document.dispose();

    if(isImage) return imageReturnFile;

    //压缩图片文件

    String directoryName = fileName.substring(0, fileName.lastIndexOf("."));

    File zipFile = new File(directoryName + "." + ZIP_SUFFIX);

    ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zipFile));

    zipFile(fileList, zipOutputStream);

    zipOutputStream.close();

    return zipFile;

    }

    /**

    * 下载image/zip文件

    * @param downloadFile 文件

    * @param response HttpServletResponse

    * @throws IOException IO异常

    */

    private static void downloadFile(File downloadFile, HttpServletResponse response) throws IOException {

    FileInputStream fileInputStream = new FileInputStream(downloadFile);

    byte[] bytes = new byte[fileInputStream.available()];

    fileInputStream.read(bytes);

    fileInputStream.close();

    //设置response参数

    response.reset();

    if(isImage){

    response.setContentType("image/jpeg");

    } else {

    response.setContentType("application/zip");

    }

    response.setCharacterEncoding("UTF-8");

    response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(downloadFile.getName(), "UTF-8"));

    OutputStream outputStream = response.getOutputStream();

    outputStream.write(bytes);

    outputStream.flush();

    outputStream.close();

    if(!isImage) downloadFile.delete();

    }

    /**

    * 压缩文件

    * @param inputFiles 具体需要压缩的文件集合

    * @param zipOutputStream ZipOutputStream对象

    * @throws IOException IO异常

    */

    private static void zipFile(List inputFiles, ZipOutputStream zipOutputStream) throws IOException {

    byte[] buffer = new byte[1024];

    for (File file : inputFiles) {

    if (file.exists()) {

    if (file.isFile()) {

    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));

    zipOutputStream.putNextEntry(new ZipEntry(file.getName()));

    int size = 0;

    while ((size = bis.read(buffer)) > 0) {

    zipOutputStream.write(buffer, 0, size);

    }

    zipOutputStream.closeEntry();

    bis.close();

    file.delete();

    } else {

    File[] files = file.listFiles();

    if(null == files) continue;

    List childrenFileList = Arrays.asList(files);

    zipFile(childrenFileList, zipOutputStream);

    }

    }

    }

    }

    /**

    * 获取PDF页数

    * @throws IOException

    */

    public static String getPdfPageSize(MultipartFile file) throws IOException {

    PdfReader pdfReader = new PdfReader(file.getBytes());

    int pages = pdfReader.getNumberOfPages();

    return String.valueOf(pages);

    }

    }

    生成图片PdfController.javapackage com.web.transformation.controller;

    import com.util.PdfToImageUtil;

    import org.springframework.stereotype.Controller;

    import org.springframework.web.bind.annotation.RequestMapping;

    import org.springframework.web.bind.annotation.ResponseBody;

    import org.springframework.web.multipart.MultipartFile;

    import javax.servlet.http.HttpServletResponse;

    import java.io.IOException;

    //java项目 www.fhadmin.org

    @Controller

    public class PdfController {

    //PDF转图片或者ZIP

    @RequestMapping("/pdfToImage")

    @ResponseBody

    public void pdfToImage(MultipartFile file, HttpServletResponse response) throws Exception{

    PdfToImageUtil.pdfToTransformation(file,response);

    }

    //获取PDF页数

    @RequestMapping("/getPdfPageSize")

    @ResponseBody

    public String pdfToImage(MultipartFile file) throws IOException {

    return PdfToImageUtil.getPdfPageSize(file);

    }

    }

    展开全文
  • 本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取。使用工具:Free Spire.PDF for Java(免费版)Jar文件获取导入:方法1:通过官网下载jar文件包。下载...

    本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取。

    使用工具:Free Spire.PDF for Java(免费版)

    Jar文件获取导入:

    方法1:通过官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入java程序。导入后如下图:

    ad7f8e910ffc7bae991344880029b48c.png

    方法2: 可通过maven仓库安装导入。

    Java代码示例

    import com.spire.pdf.*;

    import javax.imageio.ImageIO;

    import java.awt.image.BufferedImage;

    import java.io.File;

    import java.io.FileWriter;

    import java.io.IOException;

    public class ExtractText {

    public static void main(String[]args) throws Exception {

    //加载测试文档

    PdfDocument pdf = new PdfDocument("sample.pdf");

    //实例化StringBuilder类

    StringBuilder sb = new StringBuilder();

    //定义一个int型变量

    int index = 0;

    //遍历PDF文档中每页

    PdfPageBase page;

    for (int i= 0; i

    page = pdf.getPages().get(i);

    //调用extractText()方法提取文本

    sb.append(page.extractText(true));

    FileWriter writer;

    try {

    //将StringBuilder对象中的文本写入到txt

    writer = new FileWriter("ExtractText.txt");

    writer.write(sb.toString());

    writer.flush();

    } catch (IOException e) {

    e.printStackTrace();

    }

    //调用extractImages方法获取图片

    for (BufferedImage image : page.extractImages()) {

    //指定输出图片名,指定图片格式

    File output = new File(String.format("Image_%d.png", index++));

    ImageIO.write(image, "PNG", output);

    }

    }

    pdf.close();

    }

    }

    文本和图片读取效果:

    b7401ac02e19985514140fa04be58573.png

    总结

    以上所述是小编给大家介绍的Java 读取PDF中的文本和图片的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    展开全文
  • 本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取。使用工具:Free Spire.PDF for Java(免费版)Jar文件获取导入:方法1:通过官网方法2: 可通过Java...
  • 本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取。使用工具:Free Spire.PDF for Java(免费版)Jar文件获取导入:方法1:通过官网下载jar文件包。下载...
  • 本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取,需要的朋友可以参考下
  • 引入所需maven依赖org.icepdf.osicepdf-core6.2.2javax.mediajai_coreJAVA代码工具类package com.util;import com.lowagie.text.pdf.PdfReader;import lombok.extern.slf4j.Slf4j;import org.icepdf.core.pobjects....
  • Java 读取PDF文本内容

    万次阅读 热门讨论 2018-09-10 17:19:11
    本文将介绍如何在Java应用程序中读取PDF文件的文本内容。(读取图片也支持,参考这篇文章Java 提取PDF文档中的图片) 在Java应用程序中读取PDF,我们可以借助第三方PDF控件,本文所使用的控件是免费Java PDF组件Free ...
  • java读取pdf内容(图片和文本) 使用pdfbox,maven如下 <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.12</...
  • import com.spire.pdf.*;...import java.awt.image.BufferedImage;import java.io.File;public class ExtractImg {public static void main(String[] args) throws Exception{//加载测试文档Pdf...
  • 本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取。 使用工具:Free Spire.PDF for Java(免费版) Jar文件获取导入: 方法1:通过官网下载jar...
  • -- PDF图片 --> <dependency> <groupId>org.icepdf.os</groupId> <artifactId>icepdf-core</artifactId> <version>6.2.2</version> <exclusions> &
  • 本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取。使用工具:Free Spire.PDF for Java(免费版)Jar文件获取导入:方法1:通过官网下载jar包。Free ...
  • 本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取。使用工具:Free Spire.PDF for Java(免费版)Jar文件获取导入:方法1:通过官网下载jar包。Free ...
  • java读取pdf文件的图片和文字内容

    万次阅读 2017-11-02 14:37:43
    引用的jar包: pdfbox-1.8.13.jar fontbox-1.8.13.jar   public static void main(String[] args) { PDFReader pdfReader1 = new PDFReader(); pdfReader1.pdfReader("C:/Users/Administrator/D...
  • java 处理pdf文档,比如:在特定位置插入图片,签名,需要计算pdf的宽度,高度1.项目结构 和引用类库除了标准java jdk库外,还需引入下图表示的两个jar 2.具体实现代码:import java.io.FileInputStream;import java....
  • pdf文件进行读取,根据传入的文字去寻找指定位置信息,根据位置信息添加图片,其中样式格式可自定义,具体可查看jar包的操作文档,地址可百度。实现签字或者盖章操作,文件中包括源码和架包。
  • 代码如下,读取pdf文件时,出现中文字符乱码的情况,求大神解决。。 ![图片说明](https://img-ask.csdn.net/upload/201512/01/1448957510_127034.png) package read; import java.io.FileInputStream; import ...
  • 电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到Java 提取/读取PDF中的图片的问题,如果我们遇到了Java 提取/读取PDF中的图片的情况,该怎么处理怎么才能解决Java 提取/读取PDF...
  • java读取pdf中数据,包含表格和图片

    千次阅读 2014-08-01 13:47:34
    最近接到的一个任务是提取pdf文件中的数据,并将其转化d
  • java 读取pdf文件的宽,高

    万次阅读 2018-01-10 10:45:54
    java 处理pdf文档,比如:在特定位置插入图片,签名,需要计算pdf的宽度,高度1.项目结构 和引用类库除了标准java jdk库外,还需引入下图表示的两个jar2.具体实现代码:import java.io.FileInputStream; import java....
  • package per.qy.dexter....import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.Iterato...
  • 今天做PDF文件解析,遇到一个需求:提取文件中的图片并保存。使用的是流行的apache开源jar包pdfbox, 但还是遇到坑了,比如pdfbox版本太高或太低都不能用!!这个包竟然没有很好地做好兼容问题,有些方法在高版本说...
  • OFFICE文档使用POI控件,PDF可以使用PDFBOX0.7.3控件,完全支持中文,用XPDF也行.java2word 是一个在java程序中调用 MS Office Word 文档的组件(类库)。该组件提供了一组简单的接口,以便java程序调用他的服务操作...
  • importjava.awt.image.BufferedImage;importjava.awt.image.RenderedImage;importjava.io.File;importjava.io.IOException;importjavax.imageio.ImageIO;importorg.icepdf.core.pobjects.Document;importorg.icepdf....
  • maven 读取pdf 例子 java 读取pdf 文字 图片 poi 读取word 文字 图片
  • java-pdfbox2.0.8读取pdf文本和图片

    千次阅读 2018-03-17 23:39:18
    package per.qy.dexter.fileoperate...import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util....
  • java itext 读取现有 pdf 插里面插入图片 但是源文件内容变空白了 ?? 求大神 !!! PdfReader reader = new PdfReader(newfile); PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(newfile)); ...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 222
精华内容 88
关键字:

java读取pdf图片

java 订阅