日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java调用wkhtmltopdf生成pdf文件,美观,省事

發布時間:2025/3/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java调用wkhtmltopdf生成pdf文件,美观,省事 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? 最近項目需要導出企業風險報告,文件格式為pdf,于是搜了一大批文章都是什么Jasper Report,iText?,flying sauser?,都嘗試了一遍,感覺不是我想要的效果,

需要自己調整好多東西,樣式,字體等等,好麻煩,畢竟博主這么懶的人,哈哈。-------jstarseven

言歸正傳:

java生成pdf文件,方式很多,以上提到的哪幾種方式具體可以參考這篇文章<講解很詳細>:http://blog.csdn.net/ouyhong123/article/details/26401967

?

本文說一下博主認為比較好用一個工具:wkhtmltopdf

wkhtmltopdf是一個使用webkit網頁渲染引擎開發的用來將 html轉成 pdf的工具,可以跟多種腳本語言進行集成來轉換文檔,好用還方便,至少我的pdf沒有超級復雜,哈哈

下載地址:https://wkhtmltopdf.org/downloads.html

下載之后安裝一下,博主的安裝目錄:E:\software\wkhtmltopdf

首先測試一下:

[轉載請注明原文出處]:http://www.cnblogs.com/jstarseven/p/7251711.html,這么多字,博主碼的也挺累的,謝謝合作。

進入cmd,cd?E:\software\wkhtmltopdf\bin

執行wkhtmltopdf.exe http://www.jstarseven.com/ ?E:\data\pdf\jstarseven.pdf

打開E:\data\pdf\jstarseven.pdf 看一下效果還可以,至少沒有很麻煩。

然后就是寫個小程序,封裝一下,調一下dos命令就可以了。

博主的思路是:事先準備好一個需要生成pdf的html模板,數據全用占位符占位,等到需要生成pdf的時候,首先向文件里面寫入數據,然后調用wkhtmltopdf生成pdf文件。

文件那部分就不說了,直接看pdf這部分吧,代碼很簡單。

代碼:?HtmlToPdf.java

1 package com.server.wkhtmltopdf; 2 3 import java.io.*; 4 5 /** 6 * Created by jstarseven on 2017/7/25. 7 */ 8 public class HtmlToPdf { 9 //wkhtmltopdf在系統中的路徑 10 private static final String toPdfTool = "D:\\software-dev\\wkhtmltopdf\\bin\\wkhtmltopdf.exe"; 11 12 /** 13 * html轉pdf 14 * 15 * @param srcPath html路徑,可以是硬盤上的路徑,也可以是網絡路徑 16 * @param destPath pdf保存路徑 17 * @return 轉換成功返回true 18 */ 19 public static boolean convert(String srcPath, String destPath) { 20 File file = new File(destPath); 21 File parent = file.getParentFile(); 22 //如果pdf保存路徑不存在,則創建路徑 23 if (!parent.exists()) 24 parent.mkdirs(); 25 StringBuilder cmd = new StringBuilder(); 26 cmd.append(toPdfTool); 27 cmd.append(" "); 28 cmd.append(srcPath); 29 cmd.append(" "); 30 cmd.append(destPath); 31 32 boolean result = true; 33 try { 34 Process proc = Runtime.getRuntime().exec(cmd.toString()); 35 HtmlToPdfInterceptor error = new HtmlToPdfInterceptor(proc.getErrorStream()); 36 HtmlToPdfInterceptor output = new HtmlToPdfInterceptor(proc.getInputStream()); 37 error.start(); 38 output.start(); 39 proc.waitFor(); 40 } catch (Exception e) { 41 result = false; 42 e.printStackTrace(); 43 } 44 45 return result; 46 } 47 48 public static void main(String[] args) { 49 convert("http://www.jstarseven.com/", "E:\\data\\pdf\\jstarseven.pdf"); 50 } 51 } 52 53 class HtmlToPdfInterceptor extends Thread { 54 private InputStream is; 55 56 public HtmlToPdfInterceptor(InputStream is) { 57 this.is = is; 58 } 59 60 public void run() { 61 try { 62 InputStreamReader isr = new InputStreamReader(is, "utf-8"); 63 BufferedReader br = new BufferedReader(isr); 64 String line; 65 while ((line = br.readLine()) != null) { 66 System.out.println(line); //輸出內容 67 } 68 } catch (IOException e) { 69 e.printStackTrace(); 70 } 71 } 72 } View Code

效果測試圖:

最后達成的效果,其實就和采用phantomjs截了圖差不多,個人感覺還不錯,不知道會不會有其他的問題,尚待發現。。。

[轉載請注明原文出處]:http://www.cnblogs.com/jstarseven/p/7251711.html,這么多字,博主碼的也挺累的,謝謝合作。

?

注意事項

執行./wkhtmltoimage 出現如下錯誤:
./wkhtmltoimage: error while loading shared libraries: libXext.so.6: cannot open shared object file
安裝:
yum -y install libXrender*
yum -y install libXext*
yum -y install libX11*
yum -y install freetype*
yum -y install fontconfig*
yum -y install zlib*

使用:./wkhtmltopdf html_path pdf_path

中文亂碼或者空白解決方法(如果wkhtmltopdf中文顯示空白或者亂碼方框):
打開windows c:\Windows\fonts\simsun.ttc拷貝到linux服務器/usr/share/fonts/目錄下,再次生成pdf中文顯示正常

轉載于:https://www.cnblogs.com/jstarseven/p/7251711.html

總結

以上是生活随笔為你收集整理的java调用wkhtmltopdf生成pdf文件,美观,省事的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品久久久久久久成人午夜 | 性欧美bbw| 秘密基地在线观看完整版免费 | 三上悠亚在线一区二区 | 性欧美17一18内谢 | 激情爱爱网站 | 欧美日韩成人免费观看 | 超碰国产人人 | 久久午夜影视 | 高潮毛片7777777毛片 | 在线欧美a | 狠狠爱免费视频 | 欧美黄色视屏 | 精品人妻久久久久久888不卡 | 欧美精品手机在线 | 福利在线影院 | 欧美视频免费看欧美视频 | 性中国古装videossex | www.chengren | 久久久久亚洲日日精品 | 精品视频免费观看 | 乌克兰黄色片 | 在线视频一区二区三区 | 日本成人激情视频 | 91丨九色丨海角社区 | 欧美黄色a | 五月婷婷啪啪 | 久国久产久精永久网页 | 一级二级毛片 | 久久久久中文字幕亚洲精品 | bt天堂新版中文在线地址 | 操碰91| 日韩特黄一级片 | 国产精品人人爽 | 国产精品88久久久久久妇女 | 久99久视频 | 国产3p精品一区 | 国产亚洲一区二区三区在线观看 | 搡国产老太xxx网站 高h喷汁呻吟3p | 精品国精品国产 | 色老太hd老太色hd | 亚洲国产精品成人va在线观看 | 国产午夜伦理 | 日本一区二区三区在线免费观看 | 操操操视频 | 黄色网页观看 | 欧美整片在线观看 | 希岛婚前侵犯中文字幕在线 | 色婷婷av一区二区三区之红樱桃 | 日日操日日爽 | 日本激情一区二区三区 | いいなり北条麻妃av101 | 久久精品成人一区二区三区蜜臀 | 精品免费视频 | 日本99视频 | 亚洲午夜精品一区二区三区他趣 | 在线欧美成人 | 色站在线 | 日日夜操 | 免费成人黄色网址 | 欧美精品一级在线观看 | 日韩中文字幕观看 | 色久av| 欧美乱妇在线观看 | 超碰碰碰碰 | 一区二区在线免费观看视频 | 精品成人中文无码专区 | 色网址在线观看 | 秋霞欧美一区二区三区视频免费 | 黑人一级片| 亚洲码视频 | 天堂在线视频免费 | 尤物综合网 | 欧美日韩亚洲不卡 | 亚洲国产精品成人午夜在线观看 | 中文字幕一区二区人妻 | 精品国产欧美日韩 | 欧美在线播放一区二区 | 日韩精品在线电影 | 日本精品一区二区 | 麻豆av电影在线 | 国产全肉乱妇杂乱视频 | 中文字幕第四页 | av在线不卡免费看 | 国产区网址 | 日本xxxxxxxxx | 国产一级二级三级在线观看 | 成年人性生活免费视频 | 激情六月婷| 欧美三级三级三级爽爽爽 | 少妇久久久 | 成人午夜淫片100集 伊人久久国产 | 超碰资源在线 | 性欧美高清 | 成人a站| 一区二区精彩视频 | 大学生一级片 | 男女互操在线观看 | 韩日视频 |