Java 使用iText将包含汉字的html文件转换为pdf文件。汉字转换不正确

Java 使用iText将包含汉字的html文件转换为pdf文件。汉字转换不正确,java,itext,Java,Itext,我有一个包含中文字符的html文件。我想把HTML文件转换成PDF文件。一切都很好,但汉字显示出问题。 代码如下 HTMl文件-- 中国人---快得利-协议重组贷款 Java文件----- 包bancmate.reports.otherreports.engreport; 导入com.lowagie.text.Document; 导入com.lowagie.text.Element; 导入com.lowagie.text.Watermark; 导入com.lowagie.text.html.

我有一个包含中文字符的html文件。我想把HTML文件转换成PDF文件。一切都很好,但汉字显示出问题。 代码如下

HTMl文件--


中国人---快得利-协议重组贷款
Java文件-----

包bancmate.reports.otherreports.engreport;
导入com.lowagie.text.Document;
导入com.lowagie.text.Element;
导入com.lowagie.text.Watermark;
导入com.lowagie.text.html.simpleparser.HTMLWorker;
导入com.lowagie.text.html.simpleparser.StyleSheet;
导入com.lowagie.text.pdf.PdfWriter;
//导入com.lowagie.text.pdf.codec.Base64;
导入java.io.BufferedReader;
导入java.io.ByteArrayOutputStream;
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.FileOutputStream;
导入java.io.InputStreamReader;
导入java.io.Reader;
导入java.util.ArrayList;
公共类html2pdf{
公共静态void main(字符串[]args)引发异常{
文档pdfDocument=新文档();
Reader htmlreader=新的BufferedReader(新的InputStreamReader(
新文件输入流(“D:\\Support\\LatestSupport\\CUSTOEMR.html”),“UTF-8”);
ByteArrayOutputStream bas=新的ByteArrayOutputStream();
getInstance(pdfDocument,baos);
pdfDocument.clearTextWrap();
pdfDocument.open();
样式表样式=新样式表();
loadTagStyle(“正文”、“字体”、“比特流Vera Sans”);
ArrayList arrayElementList=HTMLWorker.parseToList(htmlreader,styles);
对于(int i=0;i
输出->
中文--

那种字体支持汉字吗?你可以试试图书馆。另请参见。

比特流veranda SAN的功能:


我不知道。请告诉我,我怎样才能知道哪个字符支持汉字?我用的是这个,但pdf与汉字不一致。我也用字体“KozMinPro Regular.ttf”检查。
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
chinese---快得利-协议重组贷款
</body>
</html>
package bancmate.reports.otherreports.engreport;
import com.lowagie.text.Document;
import com.lowagie.text.Element;
import com.lowagie.text.Watermark;
import com.lowagie.text.html.simpleparser.HTMLWorker;
import com.lowagie.text.html.simpleparser.StyleSheet;
import com.lowagie.text.pdf.PdfWriter;
//import com.lowagie.text.pdf.codec.Base64;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.ArrayList;

public class html2pdf {

    public static void main(String[] args) throws Exception {
        Document pdfDocument = new Document();
        Reader htmlreader = new BufferedReader(new InputStreamReader(
                                 new FileInputStream("D:\\Support\\LatestSupport\\CUSTOEMR.html"),"UTF-8"));
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfWriter.getInstance(pdfDocument, baos);
        pdfDocument.clearTextWrap();
        pdfDocument.open();
        StyleSheet styles = new StyleSheet();
        styles.loadTagStyle("body", "font", "Bitstream Vera Sans");
        ArrayList arrayElementList = HTMLWorker.parseToList(htmlreader, styles);
        for (int i = 0; i < arrayElementList.size(); ++i) {
            Element e = (Element) arrayElementList.get(i);
            pdfDocument.add(e);
        }
        pdfDocument.close();
        byte[] bs = baos.toByteArray();
       // String pdfBase64 = Base64.encodeBytes(bs); //output
        File pdfFile = new File("D:\\Support\\LatestSupport\\pdfExample.pdf");
        FileOutputStream out = new FileOutputStream(pdfFile.toString());
        out.write(bs);
        out.close();


    }
}