当前位置:首页 > 开发 > 行业应用 > 正文

关于使用html生成pdf

发表于: 2012-05-20   作者:davidxiaozhi   来源:转载   浏览次数:
摘要: 最近女朋友要通过html生成pdf文档,笨笨不爱思考的她直接求教与我,本人翻找 以前写过的案例(没有保存依赖jar包)进行测试一下,结果总是抛出莫名其妙的异常。慎重考虑 这恶心的问题可能是jar包不匹配问题引起的,估计广大网友也遇过类似这种问题,因此贴出相关依赖jar和程序代码防止防止广大网友好不容易找到一段程序却不能正常运行   程序源码 try { String

最近女朋友要通过html生成pdf文档,笨笨不爱思考的她直接求教与我,本人翻找 以前写过的案例(没有保存依赖jar包)进行测试一下,结果总是抛出莫名其妙的异常。慎重考虑 这恶心的问题可能是jar包不匹配问题引起的,估计广大网友也遇过类似这种问题,因此贴出相关依赖jar和程序代码防止防止广大网友好不容易找到一段程序却不能正常运行

 

程序源码

try {
			String outputFile = "D:/pdf/demo.pdf";
			OutputStream os = new FileOutputStream(outputFile);
			ITextRenderer renderer = new ITextRenderer();
			// 解决中文支持问题
			ITextFontResolver fontResolver = renderer.getFontResolver();
			// simsun.ttc为字体文件
			fontResolver.addFont("D:/pdf/simsun.ttc", BaseFont.IDENTITY_H,
					BaseFont.NOT_EMBEDDED);
			//无论是方法1还是方法二对html格式要求都很严格
			
			//=====1============直接拼接html代码 开始=====================
			
			/*StringBuffer html = new StringBuffer();
			// DOCTYPE 必需写否则类似于 这样的字符解析会出现错误
			html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
			html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">")
					.append("<head>")
					.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />")
					.append("<style type=\"text/css\" mce_bogus=\"1\">body {font-family: SimSun;}</style>")
					.append("</head>").append("<body>")
					.append("<div>人员名单:</div>")
					.append("<table width=\"200\" border=\"1\">")
					.append("<tr>").append("<td>姓名:</td>")
					.append("<td>年龄:</td>").append("</tr>").append("<tr>")
					.append("<td>张小三</td>").append("<td>25</td>")
					.append("</tr>").append("</table>");
			html.append("</body></html>");
		renderer.setDocumentFromString(html.toString());*/
			
			//=================直接拼接html代码 结束====================
			
			//=====2======直接加载模版 start
			renderer.setDocument(new File("D:/pdf/t.htm"));
			//=====2======直接加载模版 end
			// 解决图片的相对路径问题,如果是绝对路劲的话这个设置无用
			renderer.getSharedContext().setBaseURL("http://www.baidu.com/img/");
			renderer.layout();
			renderer.createPDF(os);
			os.close();

		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}

 依赖jar包

		<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>itextpdf</artifactId>
			<version>5.1.1</version>
		</dependency>
		<!-- <dependency> <groupId>org.xhtmlrenderer</groupId> <artifactId>xhtmlrenderer</artifactId> 
			<version>8.3-atlassian</version> </dependency> -->
		<dependency>
			<groupId>org.xhtmlrenderer</groupId>
			<artifactId>core-renderer</artifactId>
			<version>R8</version>
		</dependency>
		<dependency>
			<groupId>dom4j</groupId>
			<artifactId>dom4j</artifactId>
			<version>1.6.1</version>
		</dependency>
		<dependency>
			<groupId>com.lowagie</groupId>
			<artifactId>itext</artifactId>
			<version>2.0.8</version>
		</dependency>
 

关于使用html生成pdf

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
TIKA是什么? Apache Tika 利用现有的解析类库,从不同格式的文档中(例如HTML, PDF, Doc),侦测和
HTML生成PDF(c#) Calling wkhtmltopdf to generate PDF from HTML 老外最多人加分的那篇做法,使用w
代码 <html> <head> <meta charset="UTF-8"> <script type="text/javascript"
Calling wkhtmltopdf to generate PDF from HTML 老外最多人加分的那篇做法,使用wkhtmtopdf(GPL协
本文先叙述,如何操作PDF模板生成PDF文件,再说明在SpringMVC中如何根据PDF模板生成PDF文件。 使用P
本文先叙述,如何操作PDF模板生成PDF文件,再说明在SpringMVC中如何根据PDF模板生成PDF文件。 使用P
本文先叙述,如何操作PDF模板生成PDF文件,再说明在SpringMVC中如何根据PDF模板生成PDF文件。 使用P
本文先叙述,如何操作PDF模板生成PDF文件,再说明在SpringMVC中如何根据PDF模板生成PDF文件。 使用P
网上已经有比较多的例子 写这个 但是很多都是简单的 demo,而且有很多隐藏的问题 或者是零散的 对某
用iReport(JasperReport )软件开发报表的时候,经常会遇到这样的问题。比如,在IReport的软件调好
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号