下载pdf ,替换 word内容 并下载
def getPdf() { def houseSerialNumber=params['houseSerialNumber'] def artifEvaluationCode=params['artifEvaluationCode'] try{ //获得pdf def urlStr ="${pdfpath}?taskcode=${artifEvaluationCode}&preorformal=2&isStamp=0" // def urlStr="${pdfpath}?taskcode=201712250095380&preorformal=2&isStamp=0" def file_name="REPORT_${houseSerialNumber}.pdf" URL url = new URL(urlStr) HttpURLConnection conn = (HttpURLConnection)url.openConnection();//设置超时间为3秒 conn.setConnectTimeout(3*1000);//防止屏蔽程序抓取而返回403错误 conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//得到输入流 InputStream inputStream = conn.getInputStream();//获取自己数组 def bis = new BufferedInputStream(inputStream) def bos = new BufferedOutputStream(response.outputStream) response.setCharacterEncoding("UTF-8") response.setContentType("multipart/form-data") String userAgent = request.getHeader("User-Agent").toLowerCase() if (userAgent.contains("msie") || userAgent.contains("like gecko")) { // win10 ie edge 浏览器 和其他系统的ie file_name = URLEncoder.encode(file_name, "UTF-8") } else { file_name = new String(file_name.getBytes("UTF-8"), "iso-8859-1") } response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", file_name)) byte[] buffer = new byte[1024];int len = 0;while((len = bis.read(buffer)) != -1) { bos.write(buffer, 0, len);} if(inputStream!=null){ inputStream.close();} bis.close() bos.close() }catch (Exception e) { e.printStackTrace() } }
/** * 下载 * @return*/ def download() { def srcPath = filePath+"template.doc" Map<String, Object> dataMap = new HashMap<String, Object>();def dispute = Dispute.findByHouseSerialNumber(params['houseSerialNumber']) dataMap.put('${name}', "${dispute?.taxerName}") //向dateMap中输入数据 dataMap.put('${address}', "${dispute?.address}") dataMap.put('${salePrice}', "${dispute?.autoEvaluationSqmprice}元/平米") dataMap.put('${totalPrice}', "${dispute?.autoEvaluationTotalprice}元") dataMap.put('${texPrice}', "${dispute?.autoEvaluationSqmprice}元/平米") dataMap.put('${totalPrice1}', "${dispute?.autoEvaluationTotalprice}元") dataMap.put('${tel}', "${dispute?.taxerTel}") //往word里写入内容 def file_name = "争议申请报表_" + params['houseSerialNumber'] + ".doc" //*********************************** FileInputStream fis=new FileInputStream(srcPath) HWPFDocument document = new HWPFDocument(fis) def range = document.getRange() //读取word文本内容 //替换文本内容 for ( Map.Entry entry :dataMap.entrySet()) { range.replaceText(entry.getKey(), entry.getValue());} //转换完的数据写入OutputStream,转为InputStream 用BufferedInputStream来写入BufferedOutputStream 完成下载 OutputStream out = new ByteArrayOutputStream() document.write(out) InputStream inp = new ByteArrayInputStream(out.toByteArray()) def bis=new BufferedInputStream(inp) def bos =new BufferedOutputStream(response.outputStream) response.setCharacterEncoding("UTF-8") response.setContentType("multipart/form-data") String userAgent = request.getHeader("User-Agent").toLowerCase() if (userAgent.contains("msie") || userAgent.contains("like gecko")) { // win10 ie edge 浏览器 和其他系统的ie file_name = URLEncoder.encode(file_name, "UTF-8") } else { file_name = new String(file_name.getBytes("UTF-8"), "iso-8859-1") } response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", file_name)) byte[] buffer = new byte[1024];int len = 0;while((len = bis.read(buffer)) != -1) { bos.write(buffer, 0, len);} if(inp!=null){ inp.close();} if(out!=null){ out.close();} bis.close() bos.close() }
下载pdf ,替换 word内容 并下载相关推荐
- php 修改word内容,php如何替换word内容
php替换word内容的方法:首先下载PHPWORD,并解压缩放到项目下的"extend"中:然后加载word文件:最后使用"$loadtemplate->setV ...
- python 替换word内容 doc转换成docx
python 替换word内容 doc转换成docx doc转换成docx 北京市,天津市,上海市,重庆市,河北省,山西省,辽宁省,吉林省,黑龙江省,江苏省,浙江省,安徽省,福建省,江西省,山东省,河 ...
- vue下载pdf、word、excel、png图片
知道文件的下载路径后,执行文件下载操作,支持 pdf.pdf.word.excel.png等资源. filename 为传入的文件名.filePath 为资源路径 downItem(filename, ...
- plt转pdf软件_微信小程序重磅更新!PDF转Word,无需下载软件一键搞定!
嗨,大家好我是小小迅~ 今天小小迅给大家带来了PDF的格式转换干货!不用下载任何软件,使用?这个重磅更新后的小程序即可. 对啦,文末还有小小迅的宠粉抽奖,内含6份会员大奖,包括:腾讯.爱奇艺.百度云. ...
- python替换word内容,文档翻译-使用python替换word文档中的段落内容
前段时间遇到一个需求,需要将word文档中的内容进行替换,并且需要保证格式不变.在找了一圈资料后,发现没有现成的api供使用:由于本人做过一段时间文档解析,因此打算从word文档的xml入手,通过py ...
- 课堂派PDF文件下载教程 / 课堂派批量下载PDF文件 / 在课堂派下载老师上传的资料
试了网上说的20多种方法,都没有下载成功,最后终于发现了一种实用的下载方法: 一.首先用谷歌浏览器打开课堂派(最好用谷歌),打开这个页面,点开文件 二.打开这个页面之后,在下面这个页面点击F12 三. ...
- JS下载PDF、图片时直接下载而不是预览
只需改掉 选择器名称 和 图片存放的URL 即可使用 $("button").click(function(){let url = 'https://PDF或者图片路径/Merge ...
- poi替换word内容
都是通过占位符实现的,test方法改成工具类,传入参数就可以直接用了 需要的jar <!-- https://mvnrepository.com/artifact/org.apache.poi/ ...
- 实现FTP服务器免登陆下载PDF文件转base64在下载到本地|服务器
最近碰到一个问题,就是实现调用FTP服务器免登陆下载在进行展示,在这里分享下源码,能帮助到你的请点个赞呐呐呐! 上源码+注释 import java.io.ByteArrayOutputStream; ...
最新文章
- SAP Cloud for Customer(C4C)和微软Outlook的集成
- redis位图法统计活跃用户+统计3天的连续登录用户案例
- python汇率编程_【菜鸟学Python】案例一:汇率换算
- VS2010 C++下编译调试MongoDB“.NET研究”源码
- 基于平面 marker 的 Bundle Adjustmet
- LeetCode(821)——字符的最短距离(JavaScript)
- findmnt-寻找挂载的文件系统
- ubuntu 外置硬盘安装
- 使用Bitvise SSH Server的一些设定
- Eclipse快捷键 10个最有用的快捷键
- php版本大屏幕,PHP现场抽奖大屏幕互动系统
- 敬业签手机版便签软件怎么绑定QQ或微信互联登录?
- Framework篇 - PackageManagerService 启动分析
- 在AWS上的架构部署与设计
- 【前端】用百度BAE和express部署自己的node后台
- 什么是RoIPooling和ROIAlign
- wlan连接的笔记本电脑+开启移动热点+手机无法连接【已解决】
- 关于嵌入式的技术竞争力
- Mysql 1044错误代码:Access denied for user ''@'localhost'的解决方案
- 计算机毕业设计之android平台的出租打车软件app(源码+系统+mysql数据库+Lw文档)
热门文章
- 7-3 复数类的操作 (20分)----十分简单的代码
- 新版云盘网盘网站PHP源码+对接云存储/附教程
- 从感官沉浸到无边界互操作,细数元宇宙游戏的底层逻辑世界
- 用 Python 写了一个电子考勤系统!
- 数据挖掘mooc国防科技大学笔记(自留)
- 谷歌浏览器加载插件失败的解决方法
- qdialog 圆角_Qt 的一些心得(背景设置,圆角,半透明)
- 2021-09-13 SONiC用于无线回传网络
- [风云人物]风云(中国第一本企业家自传)
- 在VS平台下使用JAI_SDK库1———— 配置工程包含路径