我有一個包含漢字的html文件。我想將HTML文件轉換爲PDF文件。一切都轉換得很好,但漢字顯示出問題。 代碼如下使用iText將包含中文字符的html文件轉換爲pdf文件。漢字不正確轉換
的HTMl file--
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
chinese---快得利-協議重組貸款
</body>
</html>
的Java文件-----
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();
}
}
輸出 - > 中國----
我不知道。請告訴我,怎樣才能找出哪個字符支持中文字符 –
你在哪個平臺上運行這個代碼? – David
window-7,java-6 –