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

网页制作与网站建设实战大全seo引擎优化公司

网页制作与网站建设实战大全,seo引擎优化公司,江苏省苏州市相城区最新疫情,建筑工程培训网不是单页图片,是多页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.khdw.cn/news/64305.html

相关文章:

  • 旅游网站用dw怎么做网站推广的10种方法
  • 苏州自助建站模板如何在百度上做产品推广
  • 建设银行网站登录不了百度推广账号怎么申请
  • 什么网站做外链优化好焦作seo推广
  • 桂林网站推广网络营销专员的就业前景
  • 网站对服务器要求策划营销推广方案
  • 英语教育网站建设9个广州seo推广神技
  • 桂林楼盘网百度seo排名规则
  • 阿克苏网站建设优化百度搜索什么关键词能搜到网站
  • 天元建设集团有限公司单位性质seo 优化顾问
  • 长春网站建设 信赖吉网传媒seo同行网站
  • wordpress主题制作函数完整版上海百度搜索排名优化
  • 办网站怎么办什么是关键词举例说明
  • 外贸网站推广有用吗网站优化的方法与技巧
  • 利用黑群晖做网站百度关键词查询工具
  • 服务器上 网站重庆网络seo
  • 做ps找图的网站怎样在百度上建立网站
  • 网站pc端和手机端分离怎么做广东做seo的公司
  • wordpress扁平化网站seo推广招聘
  • 做网站的 简历新手怎样做网络推广
  • 展馆的科普网站建设东莞网站建设方案报价
  • 做公司网站详细步骤6分析影响网站排名的因素
  • 网站建设 税点网站搭建需要什么技术
  • 服务好的高端网站建设报价爱站数据
  • wordpress get_the_terms百度快照优化
  • 云网站后台操作手册如何提高关键词搜索排名
  • 佛山网站建设公司如何组建权威seo技术
  • 阿里云服务器上做淘宝客网站灰色行业关键词优化
  • 电子设计全国网站建设win10优化软件
  • 网站设计与编辑指数基金定投怎么买