html模板导出pdf文件

摘要:
DOCTYPEhtml˃");sb.append("");sb.append("");sb.append("");sb.append("");sb.append("法律报告导出模板");sb.append("");sb.append(".level-title{font-family:华文仿宋;font-weight:bold;font-size:22px;padding-top:30px}.level-second-title{font-family:华文仿宋;font-weight:bold;font-size:20px;padding-left:30px;padding-top:25px}.level-second-titlespan{padding-right:10px}.law-level-cont{font-family:华文仿宋;font-size:20px;text-indent:30px;line-height:24px;padding-top:10px;word-wrap:break-word}");sb.append("");sb.append("");sb.append("");sb.append("");sb.append("华润集团2017年11月报告");sb.append("");sb.append("");sb.append("");sb.append("");sb.append("");sb.append("一、投资并购");sb.append("");sb.append("");sb.append("1.当月首次参与的投资并购项目的数目:");sb.append("");sb.append("");sb.append("");sb.append("");sb.append("");sb.append("");sb.append("5");sb.append("5");sb.append("5");sb.append("5");sb.append("5");sb.append("");sb.append("");sb.append("7");sb.append("7&lt
package com.crc.commonreport.util;
import java.awt.Insets;
import java.io.ByteArrayOutputStream;
import java.io.StringReader;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.zefer.pd4ml.PD4Constants;
import org.zefer.pd4ml.PD4ML;
import com.crc.accidentreport.util.WordUtil;
public class HtmlToPdf {
	private static final Log log = LogFactory.getLog(WordUtil.class);
	public static byte[] generatePDF(StringReader strReader) {
		try {
			ByteArrayOutputStream os = new ByteArrayOutputStream();
			PD4ML pd4ml = new PD4ML();
			pd4ml.setPageInsets(new Insets(5, 5, 5, 5));
			pd4ml.setHtmlWidth(900);
			pd4ml.setPageSize(PD4Constants.A4); // A4竖向显示
												// pd4ml.changePageOrientation(PD4Constants.A4)横向显示
			pd4ml.useTTF("java:fonts", true);
			pd4ml.setDefaultTTFs("SimHei", "YouYuan", "SimSun"); // fonts.jar的配置文件中的值,用于中文乱码
			pd4ml.enableDebugInfo();
			pd4ml.render(strReader, os); // 如果用上面的fos,就是写出到指定的文件
			return os.toByteArray();
		} catch (Exception e) {
			e.printStackTrace();
			log.error("HtmlToPdf(方法:generatePDF,异常错误信息代码:" + e.getClass().getName() + "###"+ e.getMessage());
		} 
		return null;
	}
	public static void main(String[] args) throws Exception {
		StringBuffer sb = new StringBuffer();
		sb.append("<!DOCTYPE html>");
		sb.append("<html lang="en">");
		sb.append("<head>");
		sb.append("<meta charset="UTF-8" />");
		sb.append("<meta http-equiv="X-UA-Compatible" content="IE=9;IE=8;Chrome=1;IE=EDGE" />");
		sb.append("<title>法律报告导出模板</title>");
		sb.append("<meta content="width=device-width, initial-scale=1" name="viewport" />");
		sb.append("<style>.level-title {	font-family: 华文仿宋;	font-weight: bold;	font-size: 22px;	padding-top: 30px}.level-second-title {	font-family: 华文仿宋;	font-weight: bold;	font-size: 20px;	padding-left: 30px;	padding-top: 25px}.level-second-title span {	padding-right: 10px}.law-level-cont {	font-family: 华文仿宋;	font-size: 20px;	text-indent: 30px;	line-height: 24px;	padding-top: 10px;	word-wrap: break-word}</style>");
		sb.append("</head>");
		sb.append("<body   style="background:#fff;">");
		sb.append("<div class="start-issue">");
		sb.append("<div   style="text-align:center">");
		sb.append("<h2>华润集团2017年11月报告</h2>");
		sb.append("</div> ");
		sb.append("<div class="legal-opinion-box"> ");
		sb.append("<div class="panel panel-default floor">");
		sb.append("<div class="start-issue-mes form-horizontal clearfix"> ");
		sb.append("<div class="level-title">");
		sb.append("一、投资并购");
		sb.append("</div>");
		sb.append("<div class="level-second-title">");
		sb.append("<span>1.</span>当月首次参与的投资并购项目的数目:");
		sb.append("</div>");
		sb.append("<div class="law-level-cont">");
		sb.append("<p><br /></p>");
		sb.append("<table border="1" style="text-align:center; 90%">");
		sb.append("<tbody>");
		sb.append("<tr>");
		sb.append("<td>5</td>");
		sb.append("<td>5</td>");
		sb.append("<td>5</td>");
		sb.append("<td>5</td>");
		sb.append("<td>5</td>");
		sb.append("</tr>");
		sb.append("<tr>");
		sb.append(" <td>7</td>");
		sb.append(" <td>7</td>");
		sb.append("<td>7</td>");
		sb.append("<td>7</td>");
		sb.append("<td>7</td>");
		sb.append("</tr>");
		sb.append("<tr>");
		sb.append("<td><br /></td>");
		sb.append("<td><br /></td>");
		sb.append("<td><br /></td>");
		sb.append("<td><br /></td>");
		sb.append("<td><br /></td>");
		sb.append("</tr>");
		sb.append("<tr>");
		sb.append("<td><br /></td>");
		sb.append("<td><br /></td>");
		sb.append("<td><br /></td>");
		sb.append("<td><br /></td>");
		sb.append("<td><br /></td>");
		sb.append("</tr>");
		sb.append("</tbody>");
		sb.append("</table>");
		sb.append("<p><br /></p>");
		sb.append("</div>");
		sb.append("<div class="level-title">");
		sb.append("二、合同管理");
		sb.append("</div>");
		sb.append("<div class="level-second-title">");
		sb.append("<span>1.</span>合同管理制度性文件的制定、修订情况:");
		sb.append("</div>");
		sb.append("<div class="law-level-cont"></div>");
		sb.append("<div class="level-title">");
		sb.append("三、一级报告项");
		sb.append("</div>");
		sb.append("<div class="level-second-title">");
		sb.append("<span>1.</span>二级报告项01:");
		sb.append("</div>");
		sb.append("<div class="law-level-cont"></div>");
		sb.append("<div class="level-second-title">");
		sb.append("<span>2.</span>二级报告项02:");
		sb.append("</div>");
		sb.append("<div class="law-level-cont"></div> ");
		sb.append("</div> ");
		sb.append("</div> ");
		sb.append("</div> ");
		sb.append("</div>");
		sb.append("</body>");
		sb.append("</html>");
		StringReader strReader = new StringReader(sb.toString());
		FileOperationUtil.writeFileFromByte(generatePDF(strReader), "D:\test.pdf");
		System.out.println(2);
	}
}

需导入包:pd4ml_demo.jar ss_css2.jar fonts.jar

下载:http://download.csdn.net/download/wy240036141/10016357

免责声明:文章转载自《html模板导出pdf文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Rust-使用包、Crate和模块管理不断增长的项目[vba]excel中求选中数据和为给定数所有的组合下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Ubuntu 下查看CPU 信息命令

看看带有“处理器”一词的行数,即逻辑CPU的数量。因此,您可以在cmd下输入以下命令:cat/proc/cpuinfo|greproprocessor|wc-l因此,C++程序自然会想到使用strstr函数来查找processor关键字的出现次数。...

GPU与CPU

GPU和CPU CPU,也称为中央处理单元,主要由控制器、运算单元、寄存器、高速缓冲区和数据/控制/状态总线组成。GPU GPU称为GraphicsProcessingUnit,即图形处理器。GPU最初是为终端游戏设计的。由于对游戏中的大量数据重复相同的操作,GPU面临着类型高度统一、相互依赖的大规模数据。GPU的内核远多于CPU。它向多个内核发送相同的指令...

AirtestIDE基本功能(二)

文件菜单-相应工具栏上的前四个按钮:新建、打开、保存和另存为新。单击此按钮以选择是否使用创建脚本。air后缀或带有的脚本。py后缀。新脚本将初始化代码,以帮助您从API引入Airtest的各种接口,并自动初始化设备。你可以看到。air脚本文件实际上是一个公用文件夹,其中放置了通过IDE捕获的图像和运行日志。软件关闭时,布局信息将自动保存。(3) 选项-设置设...

等保2.0四级安全要求

平等保护2.0四级安全要求四级安全保护能力:应能够在统一的安全战略下,防止恶意攻击、严重自然灾害和来自国家一级、敌对组织和资源丰富的威胁源的其他严重危害造成的资源损害。它应该能够及时检测和监控攻击和安全事件,所有功能都可以快速恢复。以下粗体字段是平等保护的第4级和第3级之间的差异,应予以更多注意。...

开源项目推荐:Qt有关的GitHub/Gitee开源项目

https://www.froglogic.com/windeployqthttps://doc.qt.io/Qt-5/windows部署。htmlhttps://wiki.qt.io/Deploy_an_Application_on_Windowshttps://github.com/lucasg/Dependencieshttp://www.depend...

CUPS

杯子:一个。工具1.hal设备管理器2.系统配置打印机3.Web管理器/etc/cups/ccups。conf/etc/cups/printer conf II。打印机本地安装和客户端安装1.在本地安装Linux打印机时,应选择postscript和pcl打印机。如果没有,则应将打印机设置为原始打印模式/etc/cups/printers。有限公司...