最簡單 iText 的 PDF 生成方案(含中文解決方案)HTML 轉為 PDF
最近正好項目有用到 ITEXT ,在網絡上搜索了一番,發現了很多方案,但是感覺對于一般開發來說都太復雜了,本文提供一種最便捷的方式來實現,不需要任何額外 JAR 包。
ITEXT 的功能和簡介這里就不多說了,直接帶大家做一遍:
一段可運行的代碼比說很多廢話強得多
S1 :首先下載 JAR 包
CORE 包:http://sourceforge.net/projects/itext/files/
XML 包:http://sourceforge.net/projects/xmlworker/files/
S2:創建 HTML 文檔(將要使用的 HTML 文檔素材)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body screen_capture_injected="true" ryt11773="1">
<p>
<span style="font-size:12.0pt; font-family:MS Mincho">長空</span> <span
style="font-size:12.0pt; font-family:Times New Roman,serif">(Broken
Sword),</span> <span style="font-size:12.0pt; font-family:MS Mincho">秦王殘劍</span>
<span style="font-size:12.0pt; font-family:Times New Roman,serif">(Flying
Snow),</span> <span style="font-size:12.0pt; font-family:MS Mincho">飛雪</span>
<span style="font-size:12.0pt; font-family:Times New Roman,serif">(Moon),
</span> <span style="font-size:12.0pt; font-family:MS Mincho">如月</span> <span
style="font-size:12.0pt; font-family:Times New Roman,serif">(the
King), and</span> <span style="font-size:12.0pt; font-family:MS Mincho">秦王</span>
<span style="font-size:12.0pt; font-family:Times New Roman,serif">(Sky).</span>
</p>
</body>
</html>
S3: 引入 JAR 包 ,編寫JAVA 轉換代碼
package com.zhouqian.itext;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;
public class D07_ParseHtmlAsian {
public static final String HTML = "E:/Dropbox/document/java/designPattern/data/hero.html";
public static final String DEST = "E:/Dropbox/document/java/designPattern/data/hero.pdf";
/**
* Creates a PDF with the words "Hello World"
* @param file
* @throws IOException
* @throws DocumentException
*/
public void createPdf(String file) throws IOException, DocumentException {
// step 1
Document document = new Document();
// step 2
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
// step 3
document.open();
// step 4
XMLWorkerHelper.getInstance().parseXHtml(writer, document,
new FileInputStream(HTML), Charset.forName("UTF-8"));
// step 5
document.close();
}
/**
* Main method
*/
public static void main(String[] args) throws IOException, DocumentException {
File file = new File(DEST);
file.getParentFile().mkdirs();
new D07_ParseHtmlAsian().createPdf(DEST);
}
}
S4:在指定路徑下就可以得到 PDF 結果

來自:http://my.oschina.net/sanji/blog/277704
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!