java生成pdf文件添加图片,Javapdf转图片
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
出于某些需求需要将一张简单的图片转换为便携文档格式的文件格式,因此自己动手写了一个图片转换便携文档格式的系统,现在将该系统分享在这里,供大家参考。
(学习视频推荐:java课程)
具体代码:
引入依赖:
!-该项目以跳羚为基础搭建-
父母
groupIdorg.springframework.boot/groupId
artifact id spring-boot-starter-parent/artifact id
version2.0.4.RELEASE/version
相对路径/
/父母
属国
!- SpringMVC的依赖,方便我们可以获取前端传递过来的文件信息-
属国
groupIdorg.springframework.boot/groupId
artifact id spring-boot-starter-web/artifact id
/依赖关系
!- ITextPdf,操作便携文档格式文件的工具类-
属国
groupIdcom.itextpdf/groupId
artifactIditextpdf/artifactId
版本5 .4 .2/版本
/依赖关系
/依赖关系前端页面:
!声明文档类型
超文本标记语言
头
meta charset=UTF-8
标题图片转换pdf/标题
风格。提交按钮{
边距-顶部:20px
左边距:150像素
背景色:# e37e10
边框半径:10px
边框:1px纯色# ff8300
}
/风格
/头
身体
div style=text-align: center
氕图片转换可移植文档格式文件的扩展名(可移植文档格式的缩写)工具/h1
form action=/pdf/image/to enctype= multipart/form-data method= post on submit= return allow file type()
输入类型=文件id=文件名称=文件占位符=请选择图片onchange= allow file type() style= border:1px纯黑;英国铁路公司
输入类型=提交值=一键转换可移植文档格式文件的扩展名(可移植文档格式的缩写)文件
/表单
/div
/body
脚本
函数allowFileType() {
让文件=文档。getelementbyid(“文件”).文件[0];
让文件名=文件名
console.log(文件名)
设fileSize=file.size
console.log(文件大小)
让后缀=文件名。子字符串(文件名。lastindexof( . )),文件名。长度);
如果(。jpg !=后缀。png!=后缀){
警报(目前只允许传入。使用联合图象专家组文件交换格式存储的编码图像文件扩展名或者100 . png格式的图片!);
返回错误的
}
如果(文件大小2*1024*1024) {
警报(上传图片不允许超过2MB!);
返回错误的
}
返回真实的
}
/脚本
/html(推荐教程:java入门教程)
控制层接口
包com。HRP。控制器;
导入com。HRP。util。pdfutils
导入org。spring框架。刻板印象。控制器;
导入org。spring框架。网络。绑定。注释。后期映射;
导入org。spring框架。网络。绑定。注释。请求映射;
导入org。spring框架。网络。绑定。注释。请求参数;
导入org。spring框架。网络。多部分。多部分文件;
导入javax。servlet。http。http servlet响应;
/**
* @描述:用于处理可移植文档格式文件的扩展名(可移植文档格式的缩写)相关的请求
*/
@控制器
@RequestMapping(pdf )
公共类PdfController {
@PostMapping(image/to )
public void imageToPdf(@ request param( file )多部分文件文件,HttpServletResponse响应)引发异常{
PdfUtils.imageToPdf(文件,响应);
}
}PDF工具类
包com。HRP。util
导入com。itext pdf。文字。文档;
导入com。itext pdf。文字。文档异常;
导入com。itext pdf。文字。形象;
导入com。itext pdf。文字。页面大小;
导入com。itext pdf。文字。pdf。pdf编写器;
导入org。spring框架。刻板印象。组件;
导入org。spring框架。网络。多部分。多部分文件;
导入javax。servlet。http。http servlet响应;
导入Java。io。*;
导入Java。网。URL编码器;
/**
* @描述:pdf相关的工具类
*/
@组件
公共类PdfUtils {
/**
* 图片转换便携文档格式的公共接口
*
* @param file SpringMVC获取的图片文件
* @ param response http servlet响应
* @抛出IO异常IO异常
* @次投掷文档异常便携文档格式文档异常
*/
公共静态void imageToPdf(多文件文件,HttpServletResponse响应)引发IOException,DocumentException {
File pdfFile=generatePdfFile(文件);
downloadPdfFile(pdfFile,response);
}
/**
* 将图片转换为便携文档格式文件
*
* @param file SpringMVC获取的图片文件
* @返回便携文档格式文件
* @抛出IO异常IO异常
* @次投掷文档异常便携文档格式文档异常
*/
私有静态文件生成文件(多文件文件)引发IOException,DocumentException {
字符串fileName=file。getoriginalfilename();
字符串pdf文件名=文件名。子字符串(0,fileName.lastIndexOf( . )))) . pdf ;
文档文档=新文档(页面大小A4、20、20、20、20);
PdfWriter.getInstance(doc,新文件输出流(pdf文件名));
医生。open();
医生。新页面();
图像图像=图像。getinstance(文件。getbytes());
浮动高度=图像。获取height();
浮动宽度=图像。getwidth();
int percent=getPercent(高度,宽度);
image.setAlignment(Image .中间);
image.scalePercent(百分比);
doc.add(图片);
医生。close();
文件pdfFile=新文件(pdf文件名);
返回pdf文件
}
/**
*
* 用于下载便携文档格式文件
*
* @param pdfFile PDF文件
* @ param response http servlet响应
* @抛出IO异常IO异常
*/
私有静态void downloadPdfFile(文件PdfFile,HttpServletResponse响应)引发IOException {
file inputstream fis=新文件inputstream(pdf文件);
字节[]字节=新字节【fis。available()];
fis.read(字节);
fis。close();
回应。reset();
回应。设置标题(“内容类型”、“应用程序/pdf”);
回应。设置标题(内容-处置,附件;filename= URL编码器。编码(pdf文件。getname(), UTF-8 );
输出流out=响应。获取输出流();
输出.写入(字节);
出去。flush();
出去。close();
}
/**
* 等比压缩,获取压缩百分比
*
* @param高度图片的高度
* @param权重图片的宽度
* @返回压缩百分比
*/
私有静态int getPercent(浮动高度,浮动重量){
浮动百分比=0.0F
如果(身高体重){
百分比=页面大小100 . a4。getheight()/height * 100;
}否则{
百分比=页面大小100 . a4。getwidth()/weight * 100;
}
return Math.round(百分比);
}
}实现效果:
以上就是利用爪哇岛实现一个图片转便携文档格式文件工具的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。