pdf转图片(qq:2798641729)
前面已经把html转成pdf,但是用户可以下载图片格式的文件,所以我们必须把pdf转成图片格式,代码如下
package com.jit.platform.basics.util.pdf; import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.List; import javax.imageio.ImageIO; import org.jpedal.PdfDecoder; class ImgPp{
BufferedImage img;
int width ;
int height;
public BufferedImage getImg() {
return img;
}
public void setImg(BufferedImage img) {
this.img = img;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
} } public class PdfToImg { public static List<String> toImgList(String pdfPath,String imgPath,String imgName) throws Exception{ PdfDecoder decode_pdf = new PdfDecoder(true);
decode_pdf.openPdfFile(pdfPath); //file
int start = 1, end = decode_pdf.getPageCount(); List<String> list = new ArrayList<String>();
for(int i=start;i<end+1;i++){
BufferedImage img=decode_pdf.getPageAsImage(i);
String fileName = imgPath + imgName+"_"+i +".png";
ImageIO.write(img, "png", new File(fileName));
list.add(fileName);
}
decode_pdf.closePdfFile(); return list; } public static String toImgOne(String pdfPath,String imgPath,String imgName) throws Exception { PdfDecoder decode_pdf = new PdfDecoder(true);
decode_pdf.openPdfFile(pdfPath); //file
int start = 1, end = decode_pdf.getPageCount(); List<ImgPp> list = new ArrayList<ImgPp>();
int width = 0;
int totalHeight = 0;
for(int i=start;i<end+1;i++){
BufferedImage img=decode_pdf.getPageAsImage(i);
ImgPp imgpp = new ImgPp();
imgpp.setImg(img);
imgpp.setWidth(img.getWidth());
imgpp.setHeight(img.getHeight());
totalHeight+=img.getHeight();
width=img.getWidth();
list.add(imgpp);
} String mergeImage = mergeImage(list ,totalHeight,width ,imgPath,imgName); decode_pdf.closePdfFile(); return mergeImage; } public static String mergeImage(List<ImgPp> list,int totalHeight,int width,String imgPath,String imgName) throws Exception { //构造一个类型为预定义图像类型之一的 BufferedImage。 宽度为第一只的宽度,高度为各个图片高度之和
BufferedImage tag = new BufferedImage(width, totalHeight, BufferedImage.TYPE_INT_RGB);
//绘制合成图像
Graphics g = tag.createGraphics(); int tempHeight = 0;
for (int i = 0; i < list.size(); i++) {
ImgPp imgPp = list.get(i);
g.drawImage(imgPp.getImg(), 0, tempHeight, width, imgPp.getHeight(), null);
tempHeight+=imgPp.getHeight();
}
// 释放此图形的上下文以及它使用的所有系统资源。
g.dispose(); // Save as new image
ImageIO.write(tag, "png", new File(imgPath + imgName));
return imgName; }
public static void main(String[] args) { String pdfPath = "D:\\many page.pdf";
String imgPath = "D:\\";
String imgName = "pdfbox_image";
try {
String imgOne = toImgOne(pdfPath,imgPath,imgName);
System.out.println("imgOne"+imgOne); /*List<String> img2 = toImgList(pdfPath,imgPath,imgName); File[] fileArray = new File[img2.size()];
for (int i = 0; i < img2.size(); i++) {
//System.out.println(img2.get(i));
File file = new File(img2.get(i));
fileArray[i] = file;
}
BatchDownloadAction.makeZip(imgPath,imgName , fileArray);*/ } catch (Exception e1) {
e1.printStackTrace();
} } }
项目中遇到了用户还可以下载图片格式的文件,所以我们就需要把pdf转成图片,下面是我们完成的代码。
pdf转图片(qq:2798641729)的更多相关文章
- C# 第三方DLL,可以实现PDF转图片,支持32位系统、64位系统
itextsharp.dll,是一个开源的在C#中用来生成PDF文档的库文件,不少C#爱好者用它制作出了PDF文档生成器.使用时只需在你的C#项目中添加引入此组件即可,使用方法网上有很多,自己查阅一下 ...
- 13种PDF转图片的案列
Acrobat.dllc#PDFPDFRender4NET.dllpdf转图片 GitHub Clone Adress : https://github.com/stone0090/OfficeToo ...
- C# 给PDF添加图片背景
C# 给PDF添加图片背景 今天要实现的是给PDF文件添加图片背景这个功能.PDF是近年来最流行的文件之一,无论是办公还是日常生活中都经常会用到,很多时候,PDF文件的背景色都是白色,看多了难免觉得累 ...
- PDF转图片 C# with Adobe API
PDF转图片大概有十几种方式,褒贬不一,我就详细给大家说一下我认为效率最高的方式,使用Adobe官方的SDK 安装acrobat reader 9.0以上即可,勾选如下组件.
- 在线提取PDF中图片和文字
无需下载软件,你就可以在线提取PDF中图片和文字,http://www.extractpdf.com/不仅可以获取本地PDF文档的图片和文字,还能获取远程PDF文档的图片和文字.如下图所示:结果本人测 ...
- .Net的PDF转图片
用的是破解版的 O2S.Components.PDFRender4NET.dll 插件, 简单引用即可 public static class PdfToImage { , , ) { try { / ...
- 使用pdfbox分页保存pdf为图片
一.背景 pdfbox作为Apache开源的PDF操作工具,允许创建新的PDF文档,操作现有文档,以及从文档中提取内容的能力.Apache PDFBox还包括一些命令行实用工具.本文楼主主要介绍其中的 ...
- JAVA中pdf转图片的方法
JAVA中实现pdf转图片可以通过第三方提供的架包,这里介绍几种常用的,可以根据自身需求选择使用. 一.icepdf.有收费版和开源版,几种方法里最推荐的.转换的效果比较好,能识别我手头文件中的中文, ...
- 【JAVA】pdf转图片
最近java项目中使用到了pdf转图片的需求,在此记录一下. 1.基于GhostScript p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px ...
- PDF转图片工具
点击下载( 提取码:1ll1 ) 软件功能基于mupdf,UI使用wxpython开发 功能: 支持pdf转图片,图片格式png 支持批量转换 使用: 第一步,点击按钮添加文档到列表,或直接将待转换文 ...
随机推荐
- 【java面试】算法篇之堆排序
一.堆的概念 堆是一棵顺序存储的完全二叉树.完全二叉树中所有非终端节点的值均不大于(或不小于)其左.右孩子节点的值. 其中每个节点的值小于等于其左.右孩子的值,这样的堆称为小根堆: 其中每个节点的值大 ...
- Java容器解析系列(14) IdentityHashMap详解
IdentityHashMap,使用什么的跟HashMap相同,主要不同点在于: 数据结构:使用一个数组table来存储 key:value,table[2k] 为key, table[2k + 1] ...
- axios用post传参,后端无法获取参数问题
最近用vue+nodejs写项目,前端使用axios向后台传参,发现后台接收不到参数. 后台是node+express框架,然后使用了body-parser包接收参数,配置如下: const expr ...
- Python zmq的三种简单模式
ZMQ (以下 ZeroMQ 简称 ZMQ)是一个简单好用的传输层,像框架一样的一个 socket library,他使得 Socket 编程更加简单.简洁和性能更高. 是一个消息处理队列库,可在多个 ...
- 响应国家号召,在家撸码之React迁移记
最近这段时间新型冠状病毒肆虐,上海确诊人数每天都在增加,人人提心吊胆,街上都没人了.为了响应国家号召,近期呆在家里撸码,着手将项目迁移到React中,项目比较朴素,是一张线索提交页面,包含表单.图片滚 ...
- C语言博客作业8
本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 作业地址 我在这个课程的目标是 熟练运用C语言来写代码 这个作业在那个具体方面帮助我实现目标 while语句的运用 参考文献 ...
- 表单提交,action 地址问题
jsp 页面如下: <%@ page contentType="text/html;charset=UTF-8" language="java" %> ...
- spring源码系列博文总索引
一 目录 准备 1 使用Gradle构建spring5源码的一些坑和步骤 IOC模块 1spring IOC接口设计分析 2 spring IOC容器实现类分析 3 spring IOC特定场景源码步 ...
- 实验19:Frame-Relay
实验16-1. 帧中继多点子接口 Ø 实验目的通过本实验,读者可以掌握如下技能:(1) 帧中继的基本配置(2) 帧中继的静态映射(3) 多点子接口的应用Ø 实验拓扑 实验步骤n 步骤1 ...
- Windows 7中的“帮助和支持”无法打开怎么办?
win7 X64 将下面的代码导入注册表 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.xml] @="xmlfile&q ...