首页 > 代码库 > PDF文档生成缩略图
PDF文档生成缩略图
public class SmallImage { /** * PDF缩略图 * @Method PDFToImage * @Description TODO * @param pdfpath PDF文档路径 * @param outImagePath 输出图片的文件夹路径,如果没有会自动创建 * @param imgWidth 缩略图宽度,0按照文档宽度 * @param imgHeight 缩略图高度,0按照文档高度 * @param pageNum 需要打印的页数,0打印所有,其他打印对应页数 * @Return void */ public static void PDFToImage(String pdfPath, String outImgPath, int imgWidth, int imgHeight, int outImgNum){ try { File file = new File(pdfPath); if(!file.exists()){ System.out.println("PDF文档不存在!"); } RandomAccessFile raf = new RandomAccessFile(file, "r");//r表示只读 FileChannel channel = raf.getChannel(); ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()); PDFFile pdffile = new PDFFile(buf); System.out.println("PDF页数: " + pdffile.getNumPages()); int outImageNum = pdffile.getNumPages(); if(outImgNum!=0){ outImageNum = outImgNum; } for (int i=1; i<=outImageNum; i++){ PDFPage page = pdffile.getPage(i); Rectangle rect = new Rectangle(0, 0, (int) page.getBBox().getWidth(), (int) page.getBBox().getHeight()); int width = rect.width; int height = rect.height; if(imgWidth!=0){ width = imgWidth; } if(imgHeight!=0){ height = imgHeight; } Image img = page.getImage(width, height,rect,null,true,true); BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); tag.getGraphics().drawImage(img, 0, 0, width, height, null); File imgPath = new File(outImgPath); //如果图输出文件夹不存在,创建文件夹 if(!imgPath.exists()){ imgPath.mkdir(); } FileOutputStream out = new FileOutputStream(imgPath.toString()+"//"+file.getName()+"_"+i+".jpg"); // 输出到文件流 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(tag); // JPEG编码 out.close(); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { SmallImage.PDFToImage("c://2.pdf", "c://picture", 240, 338, 1); }}
用到的额外jar包:pdf-renderer-1.0.5.jar,下载地址:http://pan.baidu.com/s/1pJC26Wb
PDF文档生成缩略图
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。