java 修改pdf图片_java代码将pdf 转换成图片加缩略图 -3
写的这些功能主要就是放在定时任务上,每分钟查询是否要有转换的图片,有的换然后就转换,前端展示图片就可以,大家可以浏览图片。不用在去下载哪些文件了。
下面的是pdf转图片加缩略图的
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.icepdf.core.exceptions.PDFException;
import org.icepdf.core.exceptions.PDFSecurityException;
import org.icepdf.core.pobjects.Document;
import org.icepdf.core.pobjects.PDimension;
import org.icepdf.core.pobjects.Page;
import org.icepdf.core.util.GraphicsRenderingHints;
/** * @author :liu.lu
* @version 创建时间:2018年4月19日 下午9:07:33
Description:
*/
public class PdfToImages {
public static final String FILETYPE_JPG = "jpg";
public static final String SUFF_IMAGE = "." + FILETYPE_JPG;
public static void main(String[] args) {
try {
tranfer("D:\\temp\\品高工作流用户指南.pdf",1);
} catch (PDFException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (PDFSecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 转换pfd第一页为jpg缩略图大图
*
* @param filepath
* @param zoom
* @throws PDFException
* @throws PDFSecurityException
* @throws IOException
*/
public static void tranfer1(String filepath, float zoom)
throws PDFException, PDFSecurityException, IOException {
// ICEpdf document class
Document document = null;
float rotation = 0f;
document = new Document();
document.setFile(filepath);
// 创建以pdf文件名为名称的文件夹保存pdf缩略图
File file = new File(filepath.substring(0, filepath.lastIndexOf(".")));
if (!file.exists() && !file.isDirectory()) {
System.out.println("//不存在");
file.mkdir();
} else {
System.out.println("//目录存在");
}
String imagepath = "";
// 设置文件名
imagepath = jpgFilename(filepath, 0);
// 转换首页为jpg缩略图
tranferPer(document, rotation, zoom, imagepath, 0);
}
/**
* 转换pfd每一页为jpg缩略图大图
*
* @param filepath
* pfd文件路径
* @param zoom
* 缩略图缩放比例
* @throws PDFException
* @throws PDFSecurityException
* @throws IOException
*/
public static void tranfer(String filepath, float zoom)
throws PDFException, PDFSecurityException, IOException {
// ICEpdf document class
Document document = null;
float rotation = 0f;
document = new Document();
document.setFile(filepath);
// 获取pdf总页数
int pages = document.getNumberOfPages();
if (pages > 0) {
// 创建以pdf文件名为名称的文件夹保存pdf缩略图
File file = new File(filepath.substring(0, filepath
.lastIndexOf(".")));
if (!file.exists() && !file.isDirectory()) {
System.out.println("//不存在");
file.mkdir();
} else {
System.out.println("//目录存在");
}
String imagepath = "";
String smallimagepath = "";
// 将每一页的pdf转换为jpg缩略图
for (int i = 0; i < pages; i++) {
// 设置文件名
imagepath = jpgFilename(filepath, i);
tranferPer(document, rotation, zoom, imagepath, i);
//由缩略图生成指定宽高的jpg小图
smallimagepath = imagepath.substring(0,imagepath.lastIndexOf("."))+"-small"+".jpg";
zoomImage(imagepath, smallimagepath, 300, 200);
}
}
}
/**
* 设置jpg文件名
*
* @param filepath
* @param index
* @return
*/
public static String jpgFilename(String filepath, int index) {
String jpgFilename = "";
String folder = "";
index++;
if (filepath != null && !filepath.equals("")) {
folder = filepath.substring(filepath.lastIndexOf("\\") + 1,
filepath.lastIndexOf("."));
jpgFilename = filepath.substring(0, filepath.lastIndexOf("."))
+ "\\" + folder + "-" + index + "." + FILETYPE_JPG;
}
return jpgFilename;
}
/**
* 转换一页pdf为jpg缩略图大图
*
* @param document
* @param rotation
* @param zoom
* @param imagepath
* @throws PDFException
* @throws PDFSecurityException
* @throws IOException
*/
public static void tranferPer(Document document, float rotation,
float zoom, String imagepath, int index) throws PDFException,
PDFSecurityException, IOException {
float scale = 1f;
Page page = document.getPageTree().getPage(index, Object.class);
page.init();
PDimension sz = page.getSize(Page.BOUNDARY_CROPBOX, rotation, scale);
int pageWidth = (int) sz.getWidth();
int pageHeight = (int) sz.getHeight();
BufferedImage image = new BufferedImage(pageWidth, pageHeight,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
page.paint(g, GraphicsRenderingHints.PRINT, Page.BOUNDARY_CROPBOX,
rotation, scale);
g.dispose();
// capture the page image to file
try {
System.out.println("转换第 " + (index + 1) + " 页");
File file = new File(imagepath);
ImageIO.write(image, "jpg", file);
} catch (Throwable e) {
e.printStackTrace();
}
image.flush();
//由缩略图生成指定宽高的jpg小图
String smallimagepath = imagepath.substring(0,imagepath.lastIndexOf("."))+"-small"+".jpg";
zoomImage(imagepath, smallimagepath, 88, 126);
}
/**
* 由缩略图生成指定宽高的jpg小图
* @param srcFileName
* @param tagFileName
* @param width
* @param height
*/
public static void zoomImage(String srcFileName, String tagFileName,
int width, int height) {
try {
BufferedImage bi = ImageIO.read(new File(srcFileName));
BufferedImage tag = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(bi, 0, 0, width, height, null);
ImageIO.write(tag, "jpg", new File(tagFileName));
} catch (IOException e) {
e.printStackTrace();
}
}
}
测试结果
下面在给大家弄个 生成的图片带水印的
java 修改pdf图片_java代码将pdf 转换成图片加缩略图 -3相关推荐
- matlab代码转换成python_[Python]40行代码实现公式转换成图片,手把手教你从模仿到实现...
最近写公式号需要把公式转成图片,有网站能实现转换功能,但是一个一个复制过去然后保存图片太复杂. 能不能实现自动转换并保存图片呢? 这篇文章可以告诉你一个小白如何通过模仿完成一个小功能,并且遇到错误如何 ...
- 怎么把CAD转换成图片格式?CAD快速转换成图片的方法
如何把CAD转换成图片格式?在我们平时的CAD工作中,有时候为了方便观看查阅,我们需要将CAD转换高清图片.这不,前几天公司有位实习生就因为不知道该如何转换,而被领导骂了一顿.由此可见,CAD转换图片 ...
- php+打开图片二进制文件,php接收二进制文件转换成图片
$GLOBALS['HTTP_RAW_POST_DATA'] 最近在做Flash在线裁剪图片 生成图片的东西. 通过Flash POST 图片的二进制数据给php,由php生成图片保存. 开始想到用$ ...
- python输出图片到word_python将文本转换成图片输出的方法
本文实例讲述了python将文本转换成图片输出的方法.分享给大家供大家参考.具体实现方法如下: #-*- coding:utf-8 -*- from PIL import Image,ImageFon ...
- word转换成pdf java代码_java代码实现word转换成pdf
[实例简介] va代码 word转pdf ,word批量转换成pdf,word单独转换成pdf,只需要调用WordToPDFUtil方法就可以实现批量或者单独转换 [实例截图] [核心代码] e6f6 ...
- java汉字转换成拼音_Java代码将汉字转换成拼音
package com.sucre; //导入的jar包 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pi ...
- java 拼音码_java代码将汉字转换成拼音
package com.sucre; //所需导入的jar包在下侧下载 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcef ...
- JAVA如何实现将用户上传的PDF文件转换成图片并返回给用户
很多曾经攻克过的难题都没有及时记录并分享,觉得有些可惜.趁着现在还单身,头还没秃,精力也还算旺盛,我便整理出一些自己曾经挑灯夜战.独立实现的还算有些成就感的项目需求,记录在个人博客上,希望能给拥有相同 ...
- PDF转换成图片(Java pdfbox实现 附中文乱码解决方案)
PDF转换成图片(Java pdfbox实现) pdf转成图片在java中主流的做法就是pdfbox和icepdf 然而我选择pdfbox 废话不多说上代码 引入依赖 <!--pdfbox--& ...
最新文章
- 【老王来了】之隔壁路由器坏了,他来了...
- HTTP错误404.3-Not Found
- leetcode 316. 去除重复字母(单调栈)
- Web前端笔记-vue cli中使用echarts加载geo地图
- android恢复联系人,如何从Android手机恢复联系人[最佳方式]
- Windows系统cmd常用命令详解
- Twitter数据抓取的方法(三)
- 输入网址到出现页面的过程
- 机器学习-有监督学习-分类算法:SVM/支持向量机【SVM:高维空间里用于二分类的超平面;支持向量:超平面附近隔离带边界上的样本】【求参数(ω,b)使超平面y(x)=Φ(x)·ω+b能最优分隔两集合】
- 图像空间域分析之图像统计特征
- 在虚拟机上部署discuz论坛系统
- 万能设配器代码 带加载更多
- 微信小程序IOS手机能正常访问但是安卓手机出现REQUEST FAILED无法访问服务器问题
- 4G信号变卡的主要原因
- JAVA几种缓存技术介绍说明
- PostgreSQL CAST 转换数据类型
- 2018年终总结——凡是过往,皆为序章
- F - Oulipo(kmp经典模板题)!!!
- 爬虫、蜘蛛、机器人有什么区别?
- 大旺中学2021年高考成绩查询,2021年肇庆中考分数线什么时候出来,查询入口公布时间规定...