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

海南住房和城乡建设部网站网站建设做什么科目

海南住房和城乡建设部网站,网站建设做什么科目,国家网站标题颜色搭配,wordpress图片站模板下载不是单页图片,是多页PDF转成一张图片的逻辑。 我这里的场景是PDF转成图片之后返回给前端,前端再在图片上实现签字,并且可拖拽的逻辑,就是签订合同的场景。 但是这里只写后端多页PDF转图片的逻辑。 先说逻辑,后面直接…

不是单页图片,是多页PDF转成一张图片的逻辑。

我这里的场景是PDF转成图片之后返回给前端,前端再在图片上实现签字,并且可拖拽的逻辑,就是签订合同的场景。

但是这里只写后端多页PDF转图片的逻辑。

先说逻辑,后面直接上代码,大致分为以下几步:

  1. 读取PDF文件(我的代码里是将在线的URL转成InputStream了)
  2. 按PDF的页面循环计算图片的宽度和高度,其中宽度为PDF最宽的那一页的宽度(毕竟有的PDF比较骚,可能一页是横的,一页是竖的),高度为所有页面加起来的高度
  3. 用Graphics2D绘制
  4. 将Graphics2D的绘制结果输出为图片(只要有outputStream都好说,我这里是输出成base64给前端了,没什么存起来的必要)

好了,直接上代码:

先在pom.xml导入依赖:

		<!--   pdf读取     --><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.1</version></dependency><dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.1</version></dependency>
	public String getSinglePicBase64Contracts(String fileUrl) throws IOException {byte[] pdfBytes = HttpUtil.createGet(fileUrl).execute().bodyBytes();InputStream inputStream = new ByteArrayInputStream(pdfBytes);PDDocument doc = PDDocument.load(inputStream);PDFRenderer pdfRenderer = new PDFRenderer(doc);List<BufferedImage> imageList = new ArrayList<>(doc.getNumberOfPages());int maxWidth = 0;int totalHeight = 0;for (int i = 0; i < doc.getNumberOfPages(); i++) {BufferedImage image = pdfRenderer.renderImage(i, 1.25f);imageList.add(image);if (image.getWidth() > maxWidth) {maxWidth = image.getWidth();}totalHeight += image.getHeight();}// 绘制结果BufferedImage result = new BufferedImage(maxWidth, totalHeight, BufferedImage.TYPE_INT_RGB);Graphics2D g2d = result.createGraphics();int nowHeight = 0;for (BufferedImage bufferedImage : imageList) {// padding 为页面的左边距int padding = (maxWidth - bufferedImage.getWidth()) / 2;g2d.drawImage(bufferedImage, padding, nowHeight, null);nowHeight += bufferedImage.getHeight();}ByteArrayOutputStream outputStream =  new ByteArrayOutputStream();ImageIO.write(result, "png", outputStream);String singlePicBase64 = "data:image/png;base64," + Base64.encodeBase64String(outputStream.toByteArray());return singlePicBase64;}
http://www.yayakq.cn/news/567975/

相关文章:

  • 政务公开与网站建设网页站点
  • 上海营销型网站报价移动宽带过期了怎么续费
  • 电子商务建设网站什么是成品网站
  • 单页网站怎么做竞价南京公司网站建立
  • 自己做一网站 多做宣传.建设视频网站需要什么知识
  • 龙岗汤坑社区网站建设国家开发银行网站
  • 网站后台登陆路径网络营销招聘岗位有哪些
  • 女性开源网站官方网站下载安装云支付
  • 电子商务网站设计与制作网站代码优化视频教程
  • 如何建立自己的微网站河南省百城建设提质工程网站
  • 怎么做招聘网站的调研关于wordpress更新时无法创建目录
  • 网页站点规划公司建设哪个方便
  • 做期货资讯网站ppt模板去哪个网站下载
  • 网站建设人文环境腾讯网页游戏排行榜
  • 有哪些做平面设计好的网站有哪些内容wordpress文章点赞
  • 中国联通网站备案管理系统软件培训机构学费多少
  • 武隆网站建设公司企业网站的推广方法有哪些
  • 宝安的医院网站建设二建考试查询入口
  • 北京商城网站开发网络营销ppt讲解
  • 网站开发第三方支付wordpress字符图标
  • 温州中小企业网站制作阳江问政平台投诉平台
  • 计算机协会网站模板哪些网站可以做网站
  • 做网站应该了解什么问题seo技巧是什么
  • 没有收款接口网站怎么做收款cdr平面设计教程
  • 个人网站备案方法制作网页的基本步骤
  • 网站seo优化推广科技有限公司简介
  • 网站优化搜索如何做百度网站2017
  • 非交互式网站可以做商城吗许昌网站制作公司
  • 企业高端网站建设美工化妆品网络营销策划书
  • 版式设计素材网站凡科抽奖