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日
最近浏览更多
syd1988  LV7 3月14日
孤留光乩 2023年12月3日
暂无贡献等级
chen影 2023年10月31日
暂无贡献等级
zj0010722  LV2 2023年3月2日
G你太美  LV9 2022年10月13日
PaymentCodeSystem  LV11 2022年8月4日
funcrit  LV2 2022年7月18日
mengfanyun  LV9 2022年7月4日
xytthy  LV3 2022年4月25日
Yanxigul 2022年3月7日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友