pdf 转 图片

这里使用到的jar包 是 // https://mvnrepository.com/artifact/org.apache.pdfbox/fontbox compile group: 'org.apache.pdfbox', name: 'fontbox', version: '1.8.16' // https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox compile group: 'org.apache.pdfbox', name: 'pdfbox', version: '1.8.16'

pdf转单页图片 合并一张的工具库 前往aspose-words word转图片 下载使用

/**
	 * 将pdf转成一张图片
	 * @param pdffile
	 * @return
	 * @throws IOException
	 */
	public static String getPDFBinary(String pdffile) throws IOException {
		//文件流
		InputStream inputStream = new FileInputStream(pdffile);
		//文件 获取文件名字
		File file = new File(pdffile);
		String name = file.getName();
		//截取不带后缀名的字段
		String fileName = name.substring(0, name.lastIndexOf("."));

		//文件上传路径
		String parent = file.getParent();

		PDDocument doc = PDDocument.load(inputStream);
		//获取pdf文件 页数
		List<PDPage> pages = doc.getDocumentCatalog().getAllPages();

		List<BufferedImage> imageList = new ArrayList<BufferedImage>();
		BufferedImage image = null;
		for (int i = 0; i < pages.size(); i++) {
			PDPage page = (PDPage)pages.get(i); // 获取第i页
			image = page.convertToImage();
			imageList.add(image);
			//合并一张
			image = MergeImage.mergeImage(false, imageList);
		}

		boolean png = ImageIO.write(image, "png", new File(parent +"/"+ fileName + ".png"));
		if(png == false){
			return "转换失败";
		}

		//关闭流
		inputStream.close();
		return "转换成功";


	}

pdf 每页转图片 放到文件夹内 转换成压缩包 也可以不放压缩包 随意 压缩包工具类 java实现文件压缩,文件夹压缩,以及文件和文件夹的混合压缩

// 将pdf 转化为 图片分页 压缩包
 	public static String getPDFBinarys(String pdffile) throws IOException {
		//文件流
		InputStream inputStream = new FileInputStream(pdffile);
		PDDocument doc = PDDocument.load(inputStream);

		//文件 获取文件名字
		File file = new File(pdffile);
		String name = file.getName();
		//截取不带后缀名的字段
		String fileName = name.substring(0, name.lastIndexOf("."));
		//文件上传路径
		String parent = file.getParent();

		//获取pdf文件 页数
		List<PDPage> pages = doc.getDocumentCatalog().getAllPages();

		BufferedImage image = null;

		//创建同名文件夹
		new File(parent+"/"+ fileName).mkdir();

		for (int i = 0; i < pages.size(); i++) {
			PDPage page = (PDPage) pages.get(i); // 获取第i页
			image = page.convertToImage();
			ImageIO.write(image, "png", new File(parent +"/"+ fileName +"/"+ "第"+ i +"页" + fileName + ".png"));

		}

		//压缩同名文件夹
		    File f = new File(parent  +"/" + fileName );
            new CompactAlgorithm(new File( parent+ "/",f.getName()+".zip")).zipFiles(f);

		//关闭流
		inputStream.close();


		return "转换成功"+pages.size()+"页";

	}

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×