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

asp网站自动识别手机个人免费自助建站网站

asp网站自动识别手机,个人免费自助建站网站,机械加工网站大全,服装定制网站的设计与实现前言 ppt页面预览一直是个问题&#xff0c;office本身虽然有预览功能但是收费&#xff0c;一些开源的项目的预览又不太好用&#xff0c;例如开源的&#xff1a;kkfileview pptx转图片 1. 引入pom依赖 我这个项目比较老&#xff0c;使用版本较旧 <dependency><gro…

前言

ppt页面预览一直是个问题,office本身虽然有预览功能但是收费,一些开源的项目的预览又不太好用,例如开源的:kkfileview

pptx转图片

1. 引入pom依赖

我这个项目比较老,使用版本较旧

<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.15</version>
</dependency>

2. 核心方法

import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;public static final int IMG_SCALE = 2;//推荐使用整数
public static final String IMG_EXT = "png";public static void pptxToPng(InputStream pptFile,String imgPath){try (XMLSlideShow ppt = new XMLSlideShow(in)) {for(XSLFSlide slide : ppt.getSlides()) {writeImg(slideToImage(slide),imgPath);}}	
}public static BufferedImage slideToImage(XSLFSlide slide) {Dimension pgsize = slide.getSlideShow().getPageSize();BufferedImage img = new BufferedImage((pgsize.width+20)*IMG_SCALE, (pgsize.height+55)*IMG_SCALE, BufferedImage.TYPE_INT_ARGB);Graphics2D graphics = img.createGraphics();graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width+20, pgsize.height+55));//+20 +55 解决一些情况下内容溢出转图片被截断问题graphics.scale(IMG_SCALE, IMG_SCALE);graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);slide.draw(graphics);graphics.dispose();return img;
}
public static void writeImg(BufferedImage img,String filePath){String imgName = System.currentTimeMillis()+"."+IMG_EXT;File fileImg = new File(filePath+"/"+imgName);fileImg.mkdirs();ImageIO.write(img, IMG_EXT.toUpperCase(), fileImg);
}

通过IMG_SCALE提高图片分辨率,不设置图片不清晰

3. 中文乱码及字体

以上代码在windows环境没有任何问题,但在Linux下会有中文乱码,字体不对等问题,主要原因就是Linux系统里没有ppt内对应的字体,需要安装相应字体,ppt里用到的所有字体都需要安装,否则转换出来就会有字体问题;

3.1 字体

我准备了一个自己的字体库,包含了大部分字体,下载地址
https://gitee.com/suozq/linux-font.git
缺少什么字体可以到C:\Windows\Fonts目录下找

3.2 linux下安装字体(以centos7为例,其他类似)

一、复制zhFonts到/usr/share/fonts目录下;
在这里插入图片描述
二、在zhFonts目录下依次执行以下3个命令

mkfontscale
mkfontdir 
fc-cache -fv

三、重启java应用重新生成图片即可;

注意:ppt转图片时,当ppt中包含图片时,有些特殊的图片格式(例如:emf),是无法成功转换的,转换后,这些特殊格式的图片会缺失,因此ppt里使用图片需要谨慎,最好使用jpg,png这些主流格式;

另外:

kkfileview 它虽然实现了预览,对代码0侵入,但第一次预览时,它需要先下载再转换,才能预览,耗时不说,最关键有时候会转换失败,直接无法预览。时好时坏,而且文件一旦更新,还要想法让它重新下载进行转换,用户体验太差。还有一个关键,文件一般情况下都是受保护的系统资源,不会轻易让第三方下载,接口都是需要权限验证的,对外开放一个可随意下载文件的接口,即便是内网的也有一定安全隐患。
这个项目要想成功,必须做以下改进

  1. 提供后端API接口,该接口接收要预览的文件,并对文件进行转换,返回转换结果;
  2. 上述接口需要用户传递appName(应用)等辅助属性,用以生成文件唯一标识;
  3. 用户使用唯一标识进行文件预览;

这样可以在文件上传时,就进行转换,转换失败也可以提前知道;每次调接口必然是一次新的转换,没有缓存的问题。不对外提供任何无权限的全量文件下载接口,更安全。

http://www.dt0577.cn/news/628.html

相关文章:

  • 织梦医院网站模板优化大师电脑版官网
  • magento 做商城网站注册google账号
  • 企业品牌宣传重庆网站seo服务
  • 单机游戏网页版windows优化
  • 绍兴网站关键词优化seo排名啥意思
  • 阿里巴巴是搭建的网站吗网站内链优化
  • 如何把自己做的网站挂网上北京百度seo排名点击软件
  • 合肥网上商城网站建设百度指数官网
  • 手机开发网站怎么做seo资源网站 排名
  • 织梦个人网站模板刷神马网站优化排名
  • 企业网站开发一般多少钱网店运营与管理
  • 广饶县开发区政法委网站开广告代发平台
  • 番禺知名网站建设公司网站百度收录要多久
  • 建设工程合同交底的内容包括seo公司发展前景
  • 可信的移动网站建设免费html网站模板
  • 保定网站建设公司大全交换友情链接推广法
  • 网站编辑招聘信息怎么制作网站详细流程
  • 网站做实名验证如何做地推推广技巧
  • 群晖建站教程新开网店自己如何推广
  • 如何在百度搜索到自己的网站站长工具seo排名
  • 手机网站建设的公司微信小程序开发费用
  • 南京市建设委员会网站关于市场营销的培训课程
  • 英语网站都可以做哪些内容广东东莞今日最新消息
  • 阳江市做网站的公司seo全网图文推广
  • 做网站设像素有哪些可以推广的平台
  • 东莞厚街核酸检测点seo顾问合同
  • 国内室内设计网站推荐关键词优化案例
  • 企业官方网站如何做蓝v认证外贸b2b平台都有哪些网站
  • 北京软件公司招聘信息最新宝鸡seo
  • 香港特别行政区的区花是什么花seo研究中心培训机构