java html 轉pdf 中文可顯示

摘要: 最近正好項目有用到 ITEXT ,在網絡上搜索了一番,發現了不少方案,可是都是顯示中文有問題,本文提供一種最便捷的方式來實現,不須要任何額外 JAR 包。html

引用一句另一我的提出解決方式的一句話 java

一段可運行的代碼比說不少廢話強得多網絡

 

找了很是多的方法就是不顯示中文,終於在貼吧一位兄弟提醒了我.字體

最重要的一點是 html 必定要設置字體 ui

<body style = "font-family: SimSun;" > url

對html的規範要求極高,例如:頁面中<mate></mate>必須閉合,必須: <br />spa

ITEXT 的功能和簡介這裏就很少說了,直接帶你們作一遍:.net

這四個包htm

package com.uitl;get

 

import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStream;

import org.xhtmlrenderer.pdf.ITextFontResolver;

import org.xhtmlrenderer.pdf.ITextRenderer;

import com.lowagie.text.pdf.BaseFont;

 

/**

 * 

 * @author 賴興隆

 */

public class htmlToPdf {

 

public static void main(String[] args) throws Exception {

    htmlToPdf("/Users/max/Documents/workspace/temp/w3.pdf","/Users/max/Documents/workspace/temp/w.html");

}

 

public static boolean htmlToPdf(String outputFile, String url)throws Exception {

File outFile = new File(outputFile);

if (!outFile.exists()) {

outFile.getParentFile().mkdirs();

}

OutputStream os = new FileOutputStream(outputFile);

ITextRenderer renderer = new ITextRenderer();

renderer.setDocument(url);

ITextFontResolver fontResolver = renderer.getFontResolver();

fontResolver.addFont("SIMSUN.TTC", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);

renderer.layout();

renderer.createPDF(os);

os.flush();

os.close();

return true;

}

}

但願能幫到你們

相關文章
相關標籤/搜索