1. 程式人生 > >java使用pd4ml將html轉換成pdf

java使用pd4ml將html轉換成pdf

import java.awt.Insets;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.StringReader;
import java.security.InvalidParameterException;

import org.zefer.pd4ml.PD4Constants;
import org.zefer.pd4ml.PD4ML;

public class HtmlToPdf {


	
	 public static byte[] generatePDF( StringReader strReader) {  
		 try {
			 //FileOutputStream fos = new FileOutputStream(outputPDFFile);  
			 	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 (FileNotFoundException e) {
			e.printStackTrace();
		} catch (InvalidParameterException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	       
	        
	    }  
	 
	 public static void main(String[] args) throws Exception {
		 // File pdfFile = new File("pdf/test11.pdf");  
	        String html="<p>協議編號:ZRXY-201707021</p>"+

"<p><strong>債權轉讓</strong><strong>協議</strong></p>"+

"<p><strong>甲方(轉讓方):123</strong></p>"+

"<p>地址:天津市</p>"+

"<p>姓名:張三</p>"+

"<p>身份證號:2222222222</p>"+

"<p><strong>乙方(受讓方):詳見附表1</strong></p>"+

"<p><strong>丙方(</strong><strong>居間</strong><strong>服務方):</strong><strong>XXXX網路科技有限公司</strong></p>"+

"<p><strong>註冊號:2588888888</strong></p>"+

"<p>地址: 天津市濱海高新區</p>"+

"<p>法定代表人:王五</p>"+

"<p> </p>"+

"<p><strong>鑑於:</strong></p>"+
"<p>現甲乙丙三方本著互惠互利的原則,經過平等協商就乙方受讓甲方債權相關事宜特簽訂本《債權轉讓協議》(以下簡稱“本協議”),並承諾共同遵守。</p>"+

"<p><strong>2.1轉讓的債權資產詳情</strong></p>"+

"<table border=\"1\" style=\"width:90%\">"+
	"<tbody>"+
	"	<tr>"+
	"		<td>"+
	"		<p><strong>轉讓的債權資產本金金額</strong></p>"+
	"		</td>"+
	"		<td>13593.86</td>"+
	"		<td>"+
	"		<p><strong>債權轉讓墊付利息</strong></p>"+
	"		</td>"+
	"		<td>28.61</td>"+
	"		<td>"+
	"		<p><strong>債權資產轉讓日期</strong></p>"+
	"		</td>"+
	"		<td>2017-07-02</td>"+
	"	</tr>"+
	"	<tr>"+
	"		<td>"+
	"		<p><strong>借款利率</strong></p>"+
	"		</td>"+
	"		<td>12.80<strong>%</strong></td>"+
	"		<td>"+
	"		<p><strong>還款方式</strong></p>"+
	"		</td>"+
	"		<td colspan=\"3\">一次性還本付息</td>"+
	"	</tr>"+
	"	<tr>"+
	"		<td>"+
	"		<p><strong>原擔保措施</strong></p>"+
	"		</td>"+
	"		<td colspan=\"6\">"+
	"		<p><strong>債務人正常還款</strong></p>"+
	"		</td>"+
	"	</tr>"+
	"	<tr>"+
	"		<td>"+
	"		<p><strong>手續費</strong></p>"+
	"		</td>"+
"			<td colspan=\"6\">0.00</td>"+
"		</tr>"+
"		<tr>"+
"			<td>"+
"			<p><strong>債權資產轉讓價款</strong></p>"+
"			</td>"+
"			<td colspan=\"6\">13622.47</td>"+
"		</tr>"+
"	</tbody>"+
"</table>"+



"<p><strong>附表1:受讓方資訊</strong></p>"+

"<table border=\"1\" style=\"text-align:center; width:90%\">"+
	"<tbody>"+
	"	<tr>"+
	"		<th style=\"width:18%x\">姓名</th>"+
	"		<th style=\"width:18%\">使用者名稱</th>"+
	"		<th style=\"width:18%\">轉讓本金(元)</th>"+
	"		<th style=\"width:18%\">轉讓墊付利息(元)</th>"+
		"	<th style=\"width:18%\">轉讓價款(元)</th>"+
		"</tr>"+
	"	<tr>"+
			"<td colspan=\"5\"><tr><td>孟**</td><td>177****3402</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>劉*</td><td>187****0161</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>陳*</td><td>131****0826</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>金**</td><td>152****1431</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>徐**</td><td>181****1917</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>邱**</td><td>159****3743</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>許**</td><td>151****1256</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>顧**</td><td>137****6456</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>許**</td><td>152****8882</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>張**</td><td>157****9908</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>楊**</td><td>170****0411</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>李**</td><td>155****7556</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>朱**</td><td>177****2942</td><td>997.90</td><td>2.10</td><td>1000.00</td></tr><tr><td>白**</td><td>182****6155</td><td>621.16</td><td>1.31</td><td>622.47</td></tr></td>"+
		"</tr>"+
	"</tbody>"+
"</table>"; 
	        StringReader strReader = new StringReader(html.toString());  
	        generatePDF( strReader);  
	        System.out.println(2);
	}
}

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