java使用pd4ml將html轉換成pdf
阿新 • • 發佈:2019-01-08
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