第一步:下载wkhtmktopdf软件,安装在指定的目录,如:C:\htmlToPdf\wkhtmltopdf,

第二步:把安装好的wkhtmltopdf文件目录加到环境变量Path路径中,

public void convertFile(){

HttpURLConnection con = null;

URL url = null;

Process p = null;

String cmd = "html2pdf";//安装文件目录名,此名是在linux下的,其它可以自己加目录

try {

String sessionid = Struts2Util.getRequest().getSession().getId();

System.out.println("sessionid==" + sessionid);

url = new URL(

" http://10.168.2.181:8080/scm/quote_extra!print.action");

con = (HttpURLConnection) url.openConnection();

con.setRequestProperty("Cookie", "JSESSIONID=" + sessionid);

con.connect();

int size = 0;

byte[] buf = new byte[1024];

BufferedInputStream bis = new BufferedInputStream(con

.getInputStream());

StringBuffer strb = new StringBuffer();

while ((size = bis.read(buf)) != -1) {

strb.append(new String(buf, 0, size));

}

FileWriter writer = null;

File file = new File("/tmp/quote_print.html");

writer = new FileWriter(file);

writer.write(strb.toString());

writer.flush();

writer.close();

ProcessBuilder pb = new ProcessBuilder(cmd, "/tmp/quote_print.html",

"/tmp/quote_print.pdf");//使用插件进行转换

pb.redirectErrorStream(true);

p = pb.start();

InputStreamReader ir = new InputStreamReader(p.getInputStream());

LineNumberReader input = new LineNumberReader(ir);

String line;

while ((line = input.readLine()) != null) {

System.out.println(line);

}

// 提示下载

HttpServletResponse response = Struts2Util.getResponse();

response.setContentType("APPLICATION/DOWNLOAD");

response.setHeader("Content-Disposition", "attachment; filename="

+ "PrintQuote" + (new Random()).nextInt() + ".pdf");// PackingSlip是文件名

java.io.OutputStream os = response.getOutputStream();

java.io.FileInputStream fis = new java.io.FileInputStream(

"/tmp/quote_print.pdf");

byte[] b = new byte[1024];

int i = 0;

while ((i = fis.read(b)) > 0) {

os.write(b, 0, i);

}

fis.close();

os.flush();

response.flushBuffer();

os.close();

bis.close();

con.disconnect();

} catch (Exception e) {

e.printStackTrace();

throw new RuntimeException(e);

}finally{

if(p!=null){

p.destroy();

}

}

}

html转pdf后 框会消失,html或其它文件转pdf弹出打开保存框相关推荐

  1. IE浏览器下载excel文件时不弹出下载保存提示框的解决方法

    在IE浏览器中下载文件的时候,下载保存的提示框不弹出了,特意咨询了一下解决的方法,特来和大家分享. 1.打开"我的电脑"后请点击工具列的:"工具 -- 文件夹选项&quo ...

  2. php 消息对话框弹出,php弹窗代码_php弹出消息提示框的二种方法

    摘要 腾兴网为您分享:php弹出消息提示框的二种方法,优衣库,新浪博客,万师傅,顺丰等软件知识,以及符号,甘肃农商银行,彗星小,kindle人社区,广东省公务用车管理,宝鸡在线,火影忍者英文版,寂静岭 ...

  3. Visio直接粘贴进Word的矢量图,采用Adobe导出PDF后图片内容存在缺失的解决方案;  打印生成PDF,字体的加粗效果会很不明显的解决方案;

    问题一    Visio直接粘贴进Word的矢量图,采用Adobe导出PDF后图片内容存在缺失 目标效果: 但是导成PDF后字总是消失,成了 调整Visio内容没用,尝试各种网上办法没用.师妹的福昕可 ...

  4. 案例:文件下载需求:1. 页面显示超链接 2. 点击超链接后弹出下载提示框 3. 完成图片文件下载||中文文件问题

    文件下载需求:     1. 页面显示超链接     2. 点击超链接后弹出下载提示框     3. 完成图片文件下载 * 分析:     1. 超链接指向的资源如果能够被浏览器解析,则在浏览器中展示 ...

  5. bootstrap弹出的模态框水平垂直居中的实现

    学习javascript从入门到放弃!,这是第一篇随笔,经验不足,如有不当之处,还望指出.好了废话不多说直接切入正题吧 1.bootstrap默认的model写法: //触发模态框的button &l ...

  6. qt自定义按钮类,每个按钮自带一个右键弹出框,如何使同一时刻只显示一个弹出框

    提要 继承于QPushButton的自定义按钮类,其右键弹出一个弹框,创建多个这样的自定义按钮在窗口中,每一时刻只显示一个右键弹出框,避免同一时刻,多个按钮右键弹出弹出框后,未及时关闭弹出框导致的同一 ...

  7. 计算机上的框英文,电脑打开steam平台弹出一个英文框的解决方法

    现在玩绝地求生的人越来越多了,想要玩吃鸡游戏,首先要启动Steam平台.很多朋友下载Steam之后总提示无法在非英文文件夹运行,造成游戏无法继续运行,这要怎么解决?针对此疑问,小编来和大家说说一招解决 ...

  8. ECSHOP 如何删除商品列表页 购买弹出 商品属性框后面的价格

    场景如图: 商品列表页 购买弹出 商品属性框是由js文件控制的. 打开JS文件js/common.js 问题一.弹出后属性多时,看不到[购买][取消]按钮 搜索代码: newDiv.style.hei ...

  9. 使用pyqt弹出消息提示框

    使用pyqt弹出消息提示框 安装 pyqt 安装遇到问题 `No matching distribution found for PyQt5-Qt5>=5.15.2 (from pyqt5)` ...

最新文章

  1. COJ 0995 WZJ的数据结构(负五)区间操作
  2. 数据蒋堂 | SQL是描述性语言?
  3. 使用visual studio code调试php代码
  4. 【笔记】An explainable deep machine vision framework for plant stress phenotyping
  5. matlab中tenmat,tensor_toolbox_2.5 2014最新的张量的工具包, 中包含了各种 函数。 matlab 238万源代码下载- www.pudn.com...
  6. VTK:背景颜色BackgroundColor用法实战
  7. J2EE与.NET技术架构的比较
  8. 2017.6.28 文艺平衡树 思考记录
  9. 访问tomcat服务器文件路径,外置tomcat映射服务器路径以及springboot内置tomcat映射路径配置...
  10. 【Coursera】DNS加速器
  11. comsol 4.4 matlab,如何使用COMSOL with MATLAB的清单
  12. 如何更改微信标签名字_微信如何设置备注及标签 来学习吧
  13. 网易邮箱写邮件HTML转换按钮,网易邮箱帮助中心 - 写信
  14. 小米手机与计算机如何连接网络连接,小米手机连接不上电脑怎么办 图文教你小米手机怎么连接电脑...
  15. sql 事务(Transaction)
  16. make VERBOSE=1等的作用
  17. Connection could not be established with host smtp.163.com 阿星小栈
  18. Python OpenCV 实现对图片旋转矩形的裁剪
  19. 将原神角色导入unity 完整版
  20. C++习题--求余数

热门文章

  1. 单例模式示例_单例设计模式示例
  2. java中集合选取怎么选_集合中的可选
  3. 502无法解析服务器标头_编写下载服务器。 第三部分:标头:内容长度和范围...
  4. JDK 13:VM.events已添加到jcmd
  5. JDK 8 BigInteger精确缩小转换方法
  6. Java命令行界面(第20部分):JSAP
  7. 自动生成优化的Java类专业知识
  8. 数据聚合Spring Data MongoDB:嵌套结果
  9. lambda ::_Lambda项目:迈向多核及超越
  10. java并发任务执行_Java并发性-任务反馈