package com.merge.rui; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.net.MalformedURLException; import java.net.URL; import java.util.Iterator; import java.util.List; import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imageio.ImageWriter; import javax.imageio.stream.ImageOutputStream; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.util.PDFTextStripper; public class PDFExtract { public void getImage(String srcfile) throws IOException{ String textFile =null; String pdfFile = srcfile; // String pdfFile = "C:\\Users\\rui\\Desktop\\test\\" + srcfile; PDDocument doc = PDDocument.load(pdfFile); if (srcfile.length() > 4) { textFile = srcfile.substring(0, srcfile.length() - 4); } int pageCount = doc.getNumberOfPages (); System.out.println(pageCount); List<?> pages = doc.getDocumentCatalog().getAllPages(); for(int i=0;i<pages.size();i++){ PDPage page = (PDPage)pages.get(i); BufferedImage image = page.convertToImage(); Iterator<?> iter = ImageIO.getImageWritersBySuffix("jpg"); ImageWriter writer = (ImageWriter)iter.next(); File outFile = new File(textFile+i+".jpg"); FileOutputStream out = new FileOutputStream(outFile); ImageOutputStream outImage = ImageIO.createImageOutputStream(out); writer.setOutput(outImage); writer.write(new IIOImage(image,null,null)); } doc.close(); System.out.println("over"); } public void getText(String file) throws Exception { // 是否排序 boolean sort = false; // pdf文件名 @1 “E:\\data\\Inputpdf\\”是pdf文件夹根目录,所有的pdf文件都放在该目录下(自己可以设置) String pdfFile = file; // String pdfFile = "C:\\Users\\rui\\Desktop\\test\\" + file; // 输入文本文件名称 String textFile = null; // 编码方式 String encoding = "GBK"; // 开始提取页数 int startPage = 1; // 结束提取页数 int endPage = Integer.MAX_VALUE; // 文件输入流,生成文本文件 Writer output = null; // 内存中存储的PDF Document PDDocument document = null; try { try { // 首先当作一个URL来加载文件,如果得到异常再从本地系统装载文件 URL url = new URL(pdfFile); document = PDDocument.load(url); // 获取PDF的文件名 // String fileName = url.getFile(); // 以原来pdf名称来命名新产生的txt文件 if (file.length() > 4) { File outputFile = new File(file.substring(0, file.length() - 4) + ".txt"); textFile = outputFile.getName(); } } catch (MalformedURLException e) { // 如果作为URL装载得到异常则从文件系统装载 document = PDDocument.load(pdfFile); if (file.length() > 4) { textFile = file.substring(0, file.length() - 4) + ".txt"; } } // 文件输入流,写入文件到textFile @2 “E:\\data\\Outputtxt\\”是text文档输出目录(自己可以设置) output = new OutputStreamWriter(new FileOutputStream( textFile), encoding); // PDFTextStripper来提取文本 PDFTextStripper stripper = null; stripper = new PDFTextStripper(); // 设置是否排序 stripper.setSortByPosition(sort); // 设置起始页 stripper.setStartPage(startPage); // 设置结束页 stripper.setEndPage(endPage); // 调用PDFTextStripper的writeText提取并输出文本 stripper.writeText(document, output); } finally { if (output != null) { // 关闭输出流 output.close(); } if (document != null) { // 关闭PDF Document document.close(); } } } }

gshnlj LV15
2022年8月24日
2252536772 LV21
2022年2月18日
thornton2011 LV2
2021年9月2日
aihui523 LV34
2021年3月23日
wupujian LV17
2020年12月30日
18321000850 LV14
2020年6月24日
EdgarLi LV14
2020年5月16日
kkalpha LV5
2020年3月20日
qq371348836 LV7
2020年3月12日
xuyongff LV24
2019年11月4日