当前位置: 首页 > wzjs >正文

商城网站建设经验建立网站用什么软件

商城网站建设经验,建立网站用什么软件,中国建设银行网站医保,黄冈做网站价格kkFileView二开之Pdf转图片接口 1 kkFileView源码下载及编译2 Pdf转图片接口2.1 背景2.2 分析2.2 接口开发2.2.1 编写Pdf转图片方法2.2.2 编写转换接口 2.3 接口测试2.3.1 Pdf文件准备2.3.2 pdf2Image 3 部署 1 kkFileView源码下载及编译 前文 【kkFileView二开之源码编译及部…

kkFileView二开之Pdf转图片接口

  • 1 kkFileView源码下载及编译
  • 2 Pdf转图片接口
    • 2.1 背景
    • 2.2 分析
    • 2.2 接口开发
      • 2.2.1 编写Pdf转图片方法
      • 2.2.2 编写转换接口
    • 2.3 接口测试
      • 2.3.1 Pdf文件准备
      • 2.3.2 pdf2Image
  • 3 部署

1 kkFileView源码下载及编译

前文 【kkFileView二开之源码编译及部署】 已完成了kkFileView源码二开的基础准备。

2 Pdf转图片接口

2.1 背景

在实际工作过程中,存在Pdf转图片的需求,比如人员证书,通过pdf模板填充后,生成对应的图片。

2.2 分析

kkFiewView 针对pdf在线预览会有两种方式,一种是转换为图片进行预览,一种是保留原始pdf格式进行预览,此处可以调用kkfiewView底层中pdf转图片预览的方式,实现对应的接口

2.2 接口开发

2.2.1 编写Pdf转图片方法

在cn.keking.service.FileHandlerService.java 中,新增转换方法:

/*** pdf转换为图片* @param pdfFilePath* @param fileAttribute* @return* @throws Exception*/public List<String> pdf2jpgBase64(String pdfFilePath,FileAttribute fileAttribute) throws Exception {String filePassword = fileAttribute.getFilePassword();PDDocument doc = null;List<String> imageFile = new ArrayList<>();try {File pdfFile = new File(pdfFilePath);if (!pdfFile.exists()) {return null;}doc = Loader.loadPDF(pdfFile, filePassword);doc.setResourceCache(new NotResourceCache());int pageCount = doc.getNumberOfPages();PDFRenderer pdfRenderer = new PDFRenderer(doc);for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) {BufferedImage image = pdfRenderer.renderImageWithDPI(pageIndex, ConfigConstants.getPdf2JpgDpi(), ImageType.RGB);imageFile.add(ImgUtil.toBase64DataUri(image,"jpg"));}} catch (IOException e) {logger.error("Convert pdf to jpg exception, pdfFilePath:{}", pdfFilePath, e);throw new Exception(e);} finally {if (doc != null) {   //关闭doc.close();}}return imageFile;}

2.2.2 编写转换接口

在cn.keking.web.controller包下,新增ConvertController.java 文件

package cn.keking.web.controller;import cn.hutool.core.io.FileUtil;
import cn.keking.config.ConfigConstants;
import cn.keking.model.FileAttribute;
import cn.keking.model.FileType;
import cn.keking.service.FileHandlerService;
import cn.keking.service.OfficeToPdfService;
import cn.keking.utils.KkFileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** 文件转换接口*/
@Controller
public class ConvertController {private final String fileDir = ConfigConstants.getFileDir();//临时目录private final String tempPath = "temp" + File.separator;@Autowiredprivate OfficeToPdfService officeToPdfService;@Autowiredprivate FileHandlerService fileHandlerService;private static final String FILE_DIR = ConfigConstants.getFileDir();/*** pdf转换为图片* @param req* @param rep* @param file*/@PostMapping("/pdf2Image")@ResponseBodypublic Map<String,Object> pdf2Image(HttpServletRequest req, HttpServletResponse rep, @RequestParam("file") MultipartFile file) {Map<String,Object> result = new HashMap<>();FileAttribute fileAttribute = new FileAttribute();String fullFileName = file.getOriginalFilename();fileAttribute.setType(FileType.typeFromFileName(fullFileName));fileAttribute.setName(fullFileName);fileAttribute.setSuffix(KkFileUtils.suffixFromFileName(fullFileName));try {String pdfName = fullFileName.substring(0, fullFileName.lastIndexOf(".") + 1) + "pdf";String outFilePath = FILE_DIR + pdfName;FileUtil.writeFromStream(file.getInputStream(),outFilePath);List<String> imageUrls = fileHandlerService.pdf2jpgBase64(outFilePath, fileAttribute);result.put("code",200);result.put("msg","转换成功");result.put("data",imageUrls);}catch (Exception e){e.printStackTrace();result.put("code",500);result.put("msg","pdf转换图片异常:"+e.getMessage());}return result;}
}

2.3 接口测试

2.3.1 Pdf文件准备

在这里插入图片描述

2.3.2 pdf2Image

使用Apifox新建接口,按如下方式配置,并点击发送
注意:通过源码分析可知,在Pdf进行预览过程中,预览速度会随着pdf的大小不同而不同,pdf越大,则接口速度越慢,因为是一次性将对应的pdf全部转换后返回至前端的。
在这里插入图片描述
结果格式化效果(pdf文件有85页,所以data中有85条数据)
在这里插入图片描述
按如下方式,将生成的每一条数据写入到img标签中

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="utf-8" /><title>New Document</title>
</head>
<body><img src="data标签中的每一行数据" alt="" />
</body>
</html>

在浏览器中打开编写的html文件,如效果图所示,即为转换后的base64图片
在这里插入图片描述

3 部署

可参考 【kkFileView二开之源码编译及部署】 文档中,【部署】目录下的方式,根据部署的平台选择合适的方式进行部署。

http://www.dtcms.com/wzjs/316913.html

相关文章:

  • 互联网站建设用法百度知道在线
  • 可以在线做护理题的网站北京网站推广助理
  • 昆明网站推广公司域名站长工具
  • 在猪八戒网站如何做兼职怎么做起泡胶
  • 网站建设社区交流品牌推广营销平台
  • app网站建设 - 百度百度2023免费
  • 工业设计网站官网信息流推广的竞价机制是
  • 网页代理软件网站关键字优化技巧
  • 蘑菇丁毕业设计网站seo诊断站长
  • 揭阳门户网站开发谷歌paypal官网入口
  • 网站建设 开票晨阳seo
  • 备案期间需要关闭网站友情链接怎么互换
  • 烟台优化网站企业品牌推广营销方案
  • 做网站怎么样公司网站制作公司
  • 餐饮公司 网站建设营销培训总结
  • 3733手游网站在哪里做的营销推广的特点
  • 室内设计方案设计说明关键词优化课程
  • 医院哪个科室负责网站建设武汉疫情最新动态
  • 商城 小程序河北百度seo点击软件
  • 厦门网站免费制作全渠道营销成功案例
  • 广东手机网站建设报价seo排名教程
  • 东莞seo优化百度seo排名培训 优化
  • 惠阳建设局网站站长工具域名查询
  • 国家电网网站制作网络销售挣钱吗
  • 做带字头像的网站域名备案查询
  • 金华网站制作系统成功品牌策划案例
  • z-blog做企业网站app推广注册招代理
  • 郑州网站外包公司安卓优化大师最新版下载
  • 怎样做淘宝客导购网站百度贴吧广告投放价格
  • 网站建设软著长春网站制作系统