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

网站建设熊掌号里属于什么领域东莞网上做公司网站

网站建设熊掌号里属于什么领域,东莞网上做公司网站,杭州网页设计制作,濮阳做网站星月网络相信大家在开发的过程中都会遇到在线预览功能#xff0c;有没有想过如何通过java来实现excel、word、txt、ppt等办公文件在线预览功能#xff1f;今天我们就来解决这一疑问#xff01; 其实#xff0c;网上还是有些公司对这一功能提供了收费服务。那么#xff0c;如何实现…相信大家在开发的过程中都会遇到在线预览功能有没有想过如何通过java来实现excel、word、txt、ppt等办公文件在线预览功能今天我们就来解决这一疑问 其实网上还是有些公司对这一功能提供了收费服务。那么如何实现免费的功能呢接下来我们就来免费实现一版本吧。 我们要实现免费用到的就是openoffice。 openoffice的原理是通过openoffice将word、ppt、excel、txt这些文件先转化成pdf文件流 另外浏览器支持pdf文件预览的话并且装了Adobe Reader XI将pdf拖拽到浏览器中是可以直接打来浏览的。 Apache OpenOffice的下载地址Apache OpenOffice - Official Download 安装包下载完成后傻瓜式安装运行就可以了。Linux的则百度一下即可。 pom文件中引入依赖 dependencygroupIdcom.artofsolving/groupIdartifactIdjodconverter/artifactIdversion2.2.1/version /dependencydependencygroupIdorg.jodconverter/groupIdartifactIdjodconverter-core/artifactIdversion4.4.2/version /dependency dependencygroupIdorg.openoffice/groupIdartifactIdjurt/artifactIdversion3.0.1/version /dependency dependencygroupIdorg.openoffice/groupIdartifactIdridl/artifactIdversion3.0.1/version /dependency dependencygroupIdorg.openoffice/groupIdartifactIdjuh/artifactIdversion3.0.1/version /dependency dependencygroupIdorg.openoffice/groupIdartifactIdunoil/artifactIdversion3.0.1/version /dependency 代码实现 工具类 /*** 文件格式转换工具类*/ public class FileConvertUtil {/*** 默认转换后文件后缀**/private static final String DEFAULT_SUFFIX pdf;/*** openoffice_port*/private static final Integer OPENOFFICE_PORT 8100;/*** 方法描述 office文档转换为PDF(处理本地文件)* param sourcePath 源文件路径* param suffix     源文件后缀* param ip          链接ip地址* return InputStream 转换后文件输入流*/public static InputStream convertLocaleFile(String sourcePath, String suffix,String ip) throws Exception {File inputFile new File(sourcePath);InputStream inputStream new FileInputStream(inputFile);return covertCommonByStream(inputStream, suffix,ip);}/*** 方法描述  office文档转换为PDF(处理网络文件)* param netFileUrl 网络文件路径* param suffix     文件后缀* param ip          链接ip地址* return InputStream 转换后文件输入流**/public static InputStream convertNetFile(String netFileUrl, String suffix,String ip) throws Exception {// 创建URLURL url new URL(netFileUrl);// 试图连接并取得返回状态码URLConnection urlconn url.openConnection();urlconn.connect();HttpURLConnection httpconn (HttpURLConnection) urlconn;int httpResult httpconn.getResponseCode();if (httpResult HttpURLConnection.HTTP_OK) {InputStream inputStream urlconn.getInputStream();return covertCommonByStream(inputStream, suffix,ip);}return null;}/*** 方法描述  将文件以流的形式转换* param inputStream 源文件输入流* param suffix      源文件后缀* param ip          链接ip地址* return InputStream 转换后文件输入流*/public static InputStream covertCommonByStream(InputStream inputStream, String suffix,String ip) throws Exception {ByteArrayOutputStream out new ByteArrayOutputStream();OpenOfficeConnection connection new SocketOpenOfficeConnection(ip,OPENOFFICE_PORT);connection.connect();DocumentConverter converter new StreamOpenOfficeDocumentConverter(connection);DefaultDocumentFormatRegistry formatReg new DefaultDocumentFormatRegistry();DocumentFormat targetFormat formatReg.getFormatByFileExtension(DEFAULT_SUFFIX);DocumentFormat sourceFormat formatReg.getFormatByFileExtension(suffix);converter.convert(inputStream, sourceFormat, out, targetFormat);connection.disconnect();return outputStreamConvertInputStream(out);}/*** 方法描述 outputStream转inputStream*/public static ByteArrayInputStream outputStreamConvertInputStream(final OutputStream out) throws Exception {ByteArrayOutputStream baos(ByteArrayOutputStream) out;return new ByteArrayInputStream(baos.toByteArray());}/*** Description:系统文件在线预览接口*/ public void onlinePreview(String url,String ip, HttpServletResponse response) throws BaseException {if(StringUtils.isEmpty(url)){throw new ParamException(文件路径不能为空);}//获取文件类型String[] str url.split(\\.);if(str.length0){ throw new ParamException(文件格式不正确);} String suffix str[str.length-1];if(!suffix.equals(txt) !suffix.equals(doc) !suffix.equals(docx) !suffix.equals(xls)!suffix.equals(xlsx) !suffix.equals(ppt) !suffix.equals(pptx)){ throw new ParamException(文件格式不支持预览);} InputStream in null;OutputStream outputStream null;try { in convertNetFile(url,suffix,ip);outputStream response.getOutputStream();//创建存放文件内容的数组byte[] buff new byte[1024];//所读取的内容使用n来接收int n;//当没有读取完时,继续读取,循环while((nin.read(buff))!-1){ //将字节数组的数据全部写入到输出流中outputStream.write(buff,0,n);} //强制将缓存区的数据进行输出outputStream.flush();//关流outputStream.close();in.close();} catch (Exception e) { e.printStackTrace();if (outputStream ! null) { //关流try { outputStream.close();} catch (IOException e1) { e1.printStackTrace();} } if(in ! null){ try { in.close();} catch (IOException e1) { e1.printStackTrace();} } }} 在Controller类的接口中调用onlinePreview即可完成在线预览功能无需任何返回参数通过输入输出流来实现在线预览。 效果图 注意如果文件是docx、xlsx、pptx会不支持的 后续会更文告诉大家如何才能够支持以上三种文件的预览 欢迎点击下方卡片关注《coder练习生》
http://www.eeditor.cn/news/122026/

相关文章:

  • psd简单的网站首页黑龙江新闻最新消息今天
  • 中山市网站制作网站公司建设个服务号多少钱
  • 校园网站界面建设seo属于技术还是营销
  • 网站建设广告词教育培训学校网站建设策划
  • 自己做的网站打开太慢wordpress 淘宝客 采集
  • 学做电商网站设计lamp 搭建wordpress
  • seo怎么做网站优秀案例品牌型网站建设特点
  • 西宁中小企业网站建设长沙市建设局官方网站
  • 南昌网站建设博客移动端网站欣赏
  • 鞍山在百度做个网站多少钱电商税收新政策2021
  • windows 建网站免费禁用黄app软件排行
  • 做网站公司名字推荐网站开发一个网站
  • 内含各种专业的网站搭建模板wordpress网页图标
  • 成都全美网站建设环球资源网网站特色
  • 做网站后期自己可以维护吗网站顶部广告素材
  • 内蒙e登记官网最新包头seo哪家专业
  • 品牌网站设计制作公司推荐可口可乐自称小可网络营销
  • 顺德网站建设渠道wordpress 安装主题 无法调用图片和颜色
  • 建设银行防钓鱼网站呼叫中心
  • 南宁网站建设 超博网络做国外订单的网站
  • 网站建设十年杜绝模板网站推广和seo
  • wix做中文网站怎么样廊坊网站制作套餐
  • 网站的侧边栏怎么做建立网站得多少钱
  • 阿里云怎么创建网站中国正规的加盟网站
  • 实验一html静态网站开发做购物网站是怎么连接银行
  • 吴江网站建设收费网站排名优化技巧
  • 威海网站制作服务快应用 小程序
  • 有哪些在线做图的网站制作梦核的网站
  • 做图书馆网站常州做网站哪家好
  • 网站流量分析的指标有哪些电子商务沙盘seo关键词