java開發html轉pdf 解決方案
之前在工作中遇到過一個需求,是將使用者填寫的申報,由固定模板的來生成pdf,後來想到先把內容生成html,
然後再把html格式的內容轉換成pdf。
之前在網上找了很多,有很多內容都是轉載的,後來折騰了好幾天才試出一個真實能用的,所以在這裡記錄一下。方便以後查閱,也希望能幫到別人。
1.所需jar包
core-renderer.jar ,iText-2.0.8.jar
2、示例html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head > <meta charset="utf-8" /> <style> body{ padding:0; margin:0; font-family:SimSun; color: red} </style> </head> <body> <h1>2233322dsss--你好--dss2</h1> <img alt="w2" width="100px" height="100px" src="http://tva4.sinaimg.cn/crop.0.0.180.180.50/9907976cjw1e8qgp5bmzyj2050050aa8.jpg"/> </body> </html>
html中要注意的是字型的設定,
font-family:SimSun;
在下面的java程式碼中,也需要載入對應的字型,不然會出現中文顯示不出來的情況
3、java程式碼
package wqb.pdf.test; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import org.xhtmlrenderer.pdf.ITextFontResolver; import org.xhtmlrenderer.pdf.ITextRenderer; import com.lowagie.text.pdf.BaseFont; /** * html轉pdf * * @author wqb * */ public class PdfDemoTest { public static void main(String[] args) throws Exception { //讀取html的流 InputStream inputStream = PdfDemoTest.class.getResourceAsStream("test.html"); //流轉換成字串 StringBuffer out = new StringBuffer(); byte[] b = new byte[4096]; for (int n; (n = inputStream.read(b)) != -1;) { out.append(new String(b, 0, n)); } String html = out.toString(); String pdffile = "C:\\wqb\\test.pdf"; OutputStream os = new FileOutputStream(pdffile); ITextRenderer renderer = new ITextRenderer(); renderer.setDocumentFromString(html); // writer.setPageEvent(header); ITextFontResolver fontResolver = renderer.getFontResolver(); // 新增字型支援,路徑可以自身專案的實際情況設定,我這裡是本地專案,而且為了方便測試,就寫成固定的了 // 實際專案中,可以獲取改字型所在真實的伺服器的路徑,這個方法是本地地址和網路地址都支援的 // 這裡面新增的是宋體 fontResolver.addFont("C:\\software\\eclipse-neon\\workspace\\htmlToPdfDemo\\bin\\SIMSUN.TTC", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); renderer.layout(); renderer.createPDF(os); os.flush(); os.close(); } }
4、實際效果
總結:示例程式碼比較簡單,只是單純的實現了匯出pdf而已。在真實業務場景中,html的內容一般是用template或者Velocity 生成。並且字型的路徑也不能寫死,可以根據自己的專案情況採用合適的讀取辦法。
需要注意的是字型,一定要設定!!!
對html的規範要求極高,例如:頁面中<mate></mate> 等標籤必須閉合!!!
比較缺分,所以資源要分了。諒解
相關推薦
java開發html轉pdf 解決方案
之前在工作中遇到過一個需求,是將使用者填寫的申報,由固定模板的來生成pdf,後來想到先把內容生成html,然後再把html格式的內容轉換成pdf。 之前在網上找了很多,有很多內容都是轉載的,後來折騰了好幾天才試出一個真實能用的,所以在這裡記錄一下。方便以後查閱,
PDF技術(四)-Java實現Html轉PDF檔案
html轉換為pdf的關鍵技術是如何處理網頁中複雜的css樣式、以及中文亂碼處理。 各實現對比表 於Windows平臺進行測試: 基於IText 基於FlyingSaucer 基於WKHtmlToPdf
iText —— JAVA將html轉pdf
1、index.html檔案內容如下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.
Java實現Html轉PDF
專案上的客戶提出一個需求,把政務流程中的表單資料匯出成pdf或者圖片格式,用來作電子檔案材料。表單基於公司的電子政務構建平臺實現,在資料庫儲存的都是html格式,因此打算直接把表單html轉成pdf或者圖片。由於表單是已經寫好了html頁面,那我要做的就是能完美解析htm
java實現html轉pdf,支援中文,css以及中文換行
專案需使用到html轉pdf功能,在網上搜了很多,綜合了不少大神的方法,現在這裡做一個標記,以免自己以後忘記了。 java程式碼 import java.io.File; import java.io.FileOutputStream; import j
java通過html轉pdf
HTML轉PDF工具(wkhtmltopdf)介紹,支援widows和linux wkhtmltopdf下載地址:連結:http://pan.baidu.com/s/1jIkk9Wa 密碼:ljn6 cmd用法: java用法: package
java完成HTML轉PDF wkhtmltopdf
為什麼使用wkhtmltopdf HTML轉PDF的實現方式有很多,但是轉換出來的PDF的質量又好有壞。之前試過IText和一些其
javascript+java實現html轉化為PDF文檔
parse itl 比例 數據 length java實現 ucc bytearray ngs 1. 項目中引入相關的jar包 itextasian-1.5.2.jar itext-4.2.1.jar itextpdf-5.1.2.jar
java html轉pdf 中文亂碼
網上關於 html生產pdf的java程式碼許多,我就不說了。主要是記錄一下亂碼問題的關鍵 1、html檔案必須是utf-8編碼格式的檔案。 2、程式碼中的獲取方式也是utf-8的格式。 3、其他的按照別人的教程編寫
Java實現Word轉PDF方案選擇
Java實現Word轉PDF方案選擇 很多應用場景中都會涉及到Word轉PDF,但Word轉PDF的方案在網上一搜一大把,讓人眼花繚亂,筆者踩過無數的坑後,最終總結出以下三種方案 OpenOffice實現
Java操作wkhtmltopdf實現Html轉PDF
做java開發的都知道,java生成pdf大部分都是用itext,itext的確是java開源元件的第一選擇。不過itext也有侷限,就是要自己寫模版,系統中的表單數量有好幾百個,為每個表單做一個匯出
wkhtmltopdf html轉PDF 支援java 直接呼叫命令進行轉換
wkhtmltopdf [OPTIONS]... <input file> [More input files] <output file> 常規選項 --allow <path> 允許載入從指定的資料夾中的檔案或檔案(可重複)--b
Itext 匯出PDF(中文解決,HTML轉PDF)
iText是著名的開放原始碼的站點sourceforge一個專案,是用於生成PDF文件的一個java類庫。通過iText不僅可以生成PDF或rtf的文件,而且可以將XML、Html檔案轉化為PDF檔案。 iText的安裝非常方便,下載iText.jar檔案後,只需要在系統的
Java html轉PDF
在公司接到一個任務,需要有HTML和PDF兩套模板,進行功能實現。 於是我就到網上搜索資料,看看是否能夠html轉PDF。 果然搜到了很多案例,當然很多一樣的啦。 這裡我將處理demo時遇到的問題和解決方案都大概說下吧! 下面我下貼出demo: public static
【JAVA】使用 iText XMLWorker實現HTML轉PDF
使用 iText XML Worker實現HTML轉PDF package com.yfli.iText; import java.io.FileInputStream; import java.i
Java將HTML轉化為PDF+獲得頁數+合併PDF
最近公司用到了HTML轉PDF的技術,這裡就把用到的方式和技術在這裡寫一下,方便他人和自己以後有需要時進行
java html轉pdf手動分頁
方法1:用com.lowagie 引用jar包: compile group:'org.xhtmlrenderer',name:'core-renderer',version:'R8' compile group:'com.lowagie',name:'itext',
JAVA PDF解決方案
概述 Java Servlet 程式設計可以很方便地將 HTML 檔案傳送到客戶端的 Web 瀏覽器。然而許多站點還允許訪問非 HTML 格式的文件,包括 Adobe PDF、Microsoft Word 和 Micorsoft Excel 等。事實上這些非 HTML 格式只
Java生成word/pdf解決方案
首先介紹幾種java匯出word方案 1、Jacob是Java-COM Bridge的縮寫,它在Java與微軟的COM元件之間構建一座橋樑。使用Jacob自帶的DLL動態連結庫,並通過JNI的方式實現了在Java平臺上對COM程式的呼叫。DLL動態連結庫的生成需要win
Java:Excel轉PDF實現方案;基於POI與Itext進行搭配.
由於此份文章比較久遠並且發現點選率也蠻高的,為了方便大夥的測試與研究我另外建立 了一份程式碼倉庫在GitHub中,請大夥直接從這個地址拉取: https://github.com/caryyu/excel2pdf 注意!注意!注意!分隔線以下的程式碼比較久遠了,最新