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内容 并下载相关推荐

  1. php 修改word内容,php如何替换word内容

    php替换word内容的方法:首先下载PHPWORD,并解压缩放到项目下的"extend"中:然后加载word文件:最后使用"$loadtemplate->setV ...

  2. python 替换word内容 doc转换成docx

    python 替换word内容 doc转换成docx doc转换成docx 北京市,天津市,上海市,重庆市,河北省,山西省,辽宁省,吉林省,黑龙江省,江苏省,浙江省,安徽省,福建省,江西省,山东省,河 ...

  3. vue下载pdf、word、excel、png图片

    知道文件的下载路径后,执行文件下载操作,支持 pdf.pdf.word.excel.png等资源. filename 为传入的文件名.filePath 为资源路径 downItem(filename, ...

  4. plt转pdf软件_微信小程序重磅更新!PDF转Word,无需下载软件一键搞定!

    嗨,大家好我是小小迅~ 今天小小迅给大家带来了PDF的格式转换干货!不用下载任何软件,使用?这个重磅更新后的小程序即可. 对啦,文末还有小小迅的宠粉抽奖,内含6份会员大奖,包括:腾讯.爱奇艺.百度云. ...

  5. python替换word内容,文档翻译-使用python替换word文档中的段落内容

    前段时间遇到一个需求,需要将word文档中的内容进行替换,并且需要保证格式不变.在找了一圈资料后,发现没有现成的api供使用:由于本人做过一段时间文档解析,因此打算从word文档的xml入手,通过py ...

  6. 课堂派PDF文件下载教程 / 课堂派批量下载PDF文件 / 在课堂派下载老师上传的资料

    试了网上说的20多种方法,都没有下载成功,最后终于发现了一种实用的下载方法: 一.首先用谷歌浏览器打开课堂派(最好用谷歌),打开这个页面,点开文件 二.打开这个页面之后,在下面这个页面点击F12 三. ...

  7. JS下载PDF、图片时直接下载而不是预览

    只需改掉 选择器名称 和 图片存放的URL 即可使用 $("button").click(function(){let url = 'https://PDF或者图片路径/Merge ...

  8. poi替换word内容

    都是通过占位符实现的,test方法改成工具类,传入参数就可以直接用了 需要的jar <!-- https://mvnrepository.com/artifact/org.apache.poi/ ...

  9. 实现FTP服务器免登陆下载PDF文件转base64在下载到本地|服务器

    最近碰到一个问题,就是实现调用FTP服务器免登陆下载在进行展示,在这里分享下源码,能帮助到你的请点个赞呐呐呐! 上源码+注释 import java.io.ByteArrayOutputStream; ...

最新文章

  1. SAP Cloud for Customer(C4C)和微软Outlook的集成
  2. redis位图法统计活跃用户+统计3天的连续登录用户案例
  3. python汇率编程_【菜鸟学Python】案例一:汇率换算
  4. VS2010 C++下编译调试MongoDB“.NET研究”源码
  5. 基于平面 marker 的 Bundle Adjustmet
  6. LeetCode(821)——字符的最短距离(JavaScript)
  7. findmnt-寻找挂载的文件系统
  8. ubuntu 外置硬盘安装
  9. 使用Bitvise SSH Server的一些设定
  10. Eclipse快捷键 10个最有用的快捷键
  11. php版本大屏幕,PHP现场抽奖大屏幕互动系统
  12. 敬业签手机版便签软件怎么绑定QQ或微信互联登录?
  13. Framework篇 - PackageManagerService 启动分析
  14. 在AWS上的架构部署与设计
  15. 【前端】用百度BAE和express部署自己的node后台
  16. 什么是RoIPooling和ROIAlign
  17. wlan连接的笔记本电脑+开启移动热点+手机无法连接【已解决】
  18. 关于嵌入式的技术竞争力
  19. Mysql 1044错误代码:Access denied for user ''@'localhost'的解决方案
  20. 计算机毕业设计之android平台的出租打车软件app(源码+系统+mysql数据库+Lw文档)

热门文章

  1. 7-3 复数类的操作 (20分)----十分简单的代码
  2. 新版云盘网盘网站PHP源码+对接云存储/附教程
  3. 从感官沉浸到无边界互操作,细数元宇宙游戏的底层逻辑世界
  4. 用 Python 写了一个电子考勤系统!
  5. 数据挖掘mooc国防科技大学笔记(自留)
  6. 谷歌浏览器加载插件失败的解决方法
  7. qdialog 圆角_Qt 的一些心得(背景设置,圆角,半透明)
  8. 2021-09-13 SONiC用于无线回传网络
  9. [风云人物]风云(中国第一本企业家自传)
  10. 在VS平台下使用JAI_SDK库1———— 配置工程包含路径