| 站点地图 | 联系我
| www.asm32.net | 2006版 | 资料中心 | linux | asm/asm32 | C/C++ | VC++ | java | 书签 | ASP.Net书签 | 上善若水 厚德载物
 现在位置 :: 主页 >> 资料中心 >> ROOT / CODE / Java /
 

最简单 iText 的 PDF 生成方案(含中文解决方案)HTML 转为 PDF

来源(深度开源)

From: http://www.open-open.com/lib/view/open1402448471822.html

最简单 iText 的 PDF 生成方案(含中文解决方案)HTML 转为 PDF

iText 2014-06-11 10:15:54 发布

最近正好项目有用到 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

Link: http://www.asm32.net/article_details.aspx?id=7221


浏览次数 0 发布时间 2017/6/9 0:20:00 从属分类 Java 【评论】【 】【打印】【关闭
 
| www.asm32.net | 2006版 | 资料中心 | linux | asm/asm32 | C/C++ | VC++ | java | 书签 | ASP.Net书签 | 京ICP备09029108号-1