问题场景:
在使用PB嵌入HTML页面时发现调不起查看PDF的插件
解决方法:
将PDF转换为HTML来展示
解决步骤:
1.下载PDF转换工具.exe
下载地址:http://pan.baidu.com/s/1eSHq3JG
2.创建工具类
package org.common.util.pdftohtml; import org.common.util.pdftohtml.StreamGobbler; /** * @author liuzhengyong * @version 1.0 时间:2013-12-30 下午2:24:10 pdf文件转html工具类 */ public class Pdf2htmlEXUtil { /** * 调用pdf2htmlEX将pdf文件转换为html文件 * * @param exeFilePath * pdf2htmlEX.exe文件路径 * @param pdfFile * pdf文件绝对路径 * @param [destDir] 生成的html文件存放路径 * @param htmlName * 生成的html文件名称 * @return */ public static boolean pdf2html(String exeFilePath, String pdfFile, String destDir, String htmlFileName) { if (!(exeFilePath != null && !"".equals(exeFilePath) && pdfFile != null && !"".equals(pdfFile) && htmlFileName != null && !"" .equals(htmlFileName))) { System.out.println("传递的参数有误!"); return false; } Runtime rt = Runtime.getRuntime(); StringBuilder command = new StringBuilder(); command.append(exeFilePath).append(" "); if (destDir != null && !"".equals(destDir.trim()))// 生成文件存放位置,需要替换文件路径中的空格 command.append("--dest-dir ").append(destDir.replace(" ", "\" \"")) .append(" "); command.append("--optimize-text 1 ");// 尽量减少用于文本的HTML元素的数目 (default: 0) command.append("--zoom 1.4 "); command.append("--process-outline 0 ");// html中显示链接:0——false,1——true command.append("--font-format woff ");// 嵌入html中的字体后缀(default ttf) // ttf,otf,woff,svg command.append(pdfFile.replace(" ", "\" \"")).append(" ");// 需要替换文件路径中的空格 if (htmlFileName != null && !"".equals(htmlFileName.trim())) { command.append(htmlFileName); if (htmlFileName.indexOf(".html") == -1) command.append(".html"); } try { System.out.println("Command:" + command.toString()); Process p = rt.exec(command.toString()); StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream(), "ERROR"); // 开启屏幕标准错误流 errorGobbler.start(); StreamGobbler outGobbler = new StreamGobbler(p.getInputStream(), "STDOUT"); // 开启屏幕标准输出流 outGobbler.start(); int w = p.waitFor(); int v = p.exitValue(); if (w == 0 && v == 0) { return true; } } catch (Exception e) { e.printStackTrace(); } return false; } public static boolean pdf2html_linux(String pdfFile, String destDir, String htmlFileName) { if (!(pdfFile != null && !"".equals(pdfFile) && htmlFileName != null && !"" .equals(htmlFileName))) { System.out.println("传递的参数有误!"); return false; } Runtime rt = Runtime.getRuntime(); StringBuilder command = new StringBuilder(); command.append("pdf2htmlEX").append(" "); if (destDir != null && !"".equals(destDir.trim()))// 生成文件存放位置,需要替换文件路径中的空格 command.append("--dest-dir ").append(destDir.replace(" ", "\" \"")) .append(" "); command.append("--optimize-text 1 ");// 尽量减少用于文本的HTML元素的数目 (default: 0) command.append("--process-outline 0 ");// html中显示链接:0——false,1——true command.append("--font-format woff ");// 嵌入html中的字体后缀(default ttf) // ttf,otf,woff,svg command.append(pdfFile.replace(" ", "\" \"")).append(" ");// 需要替换文件路径中的空格 if (htmlFileName != null && !"".equals(htmlFileName.trim())) { command.append(htmlFileName); if (htmlFileName.indexOf(".html") == -1) command.append(".html"); } try { System.out.println("Command:" + command.toString()); Process p = rt.exec(command.toString()); StreamGobbler errorGobbler = new StreamGobbler(p.getErrorStream(), "ERROR"); // 开启屏幕标准错误流 errorGobbler.start(); StreamGobbler outGobbler = new StreamGobbler(p.getInputStream(), "STDOUT"); // 开启屏幕标准输出流 outGobbler.start(); int w = p.waitFor(); int v = p.exitValue(); if (w == 0 && v == 0) { return true; } } catch (Exception e) { e.printStackTrace(); } return false; } public static void main(String[] args) { pdf2html("D:\\pdf2htmlEX-v1.0\\pdf2htmlEX.exe","D:\\pdf2htmlEX-v1.0\\PDF\\my.pdf","D:\\pdf2htmlEX-v1.0\\HTML","my.html"); } }
package org.common.util.pdftohtml; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; /** * 用于处理Runtime.getRuntime().exec产生的错误流及输出流 * * @author shaojing * */ public class StreamGobbler extends Thread { InputStream is; String type; OutputStream os; public StreamGobbler(InputStream is, String type) { this(is, type, null); } StreamGobbler(InputStream is, String type, OutputStream redirect) { this.is = is; this.type = type; this.os = redirect; } public void run() { InputStreamReader isr = null; BufferedReader br = null; PrintWriter pw = null; try { if (os != null) pw = new PrintWriter(os); isr = new InputStreamReader(is); br = new BufferedReader(isr); String line = null; while ((line = br.readLine()) != null) { if (pw != null) pw.println(line); System.out.println(type + ">" + line); } if (pw != null) pw.flush(); } catch (IOException ioe) { ioe.printStackTrace(); } finally { try { if (pw != null) pw.close(); if (br != null) br.close(); if (isr != null) isr.close(); } catch (IOException e) { e.printStackTrace(); } } } }
3.运行工具类中的main方法。
注:运行上述步骤,问题解决,成功生成html文件
(注意pdf2htmlEX.exe文件不要单独copy出来用,需要和pdf2htmlEX-v1.0文件夹里面的东西放在一起使用,不然会报错:Error: Cannot open the manifest file)
相关推荐
该包包含后端代码,转换控件,测试文件,正式项目应用表现正常,注意不能转换水印、印章这类特殊类型,且行且珍惜。
0.使用了 jpedal、pdfbox、PDFRenderer、icepdf,前3个包和代码都有,最后个只有包 ...4.代码最后是直接转成一个简单的网页的,如果只是想转到图片,注掉生成HTML方法即可。 5.里面有详细问题分析。
java实现html转pdf,包含后端代码,html测试页面,pom依赖,jar包,如页面过于复杂需调整页面,有些样式itextpdf不支持,请寻找其它样式替换。
支持word、excel、ppt、wps、txt等多种格式转pdf、并支持pdf转word。个人感觉非常好用。
Java把HTML转PDF,项目导入eclipse直接可以跑。可以作为HTML转PDF参考
将html文件转换成pdf文件,并在指定位置添加印章图片
全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 相互转换 ,word转pdf已做测试很好用!
java html转pdf图片不显示 Java实现Html转PDF
实现思路: 1、通过URL获取当前HMTL页面的内容: URL urls = new URL(url); String urlsource = getURLSource(urls); 2、从后台获取数据库内容,内容是JSon格式保存的,把先JSon格式内容转化成Map //获取Map值 ...
java使用itext实现pdf文件下载小案例,通过系统路径下载,和通过浏览器下载
java程序html转pdf源码 ,导入可直接运行,转化包括一些比较复杂的都可以转化
java实现Excel、ppt、word、html转pef,pdf转swf动画播放效果,资源包含 工具、jar、工程示例代码以及word文档说明。这个资源我也是从网上找的 ,我自整合的,希望下载的盆友对您有所帮助。感谢您的下载。
Java实现HTML转PDF的解决方案.docx
通过Java实现 HTMLtoRTF RTFtoHTML HTMLtoPDF
java实现HTML转PDF语言支持,解决乱码问题,把这个文件上传到云服务器上面去。
6、将XML文件:D:/zhouyl/123.xml,转换成PDF文件:D:\\zhouyl\\HTMLPdf.pdf 7、将多个PDF(D:\\zhouyl\\FYImagePdf文件,D:\\zhouyl\\BTImagePDF文件)合并生成一个PDF文件:D:\\zhouyl\\合并MergePDF.pdf 二、用...
java实现html转pdf,包括解决base64图片以及中文不显示问题
java测试工具html转pdf