Преобразование HTML-файла, содержащего китайский иероглиф в PDF-файл, используя iText.Китайский иероглиф не конвертируется должным образом - PullRequest
0 голосов
/ 11 декабря 2011

У меня есть HTML-файл, который содержит китайский символ.Я хочу конвертировать HTML-файл в PDF-файл.Все хорошо конвертируется, но китайский символ показывает проблему.код следующий

файл HTMl -

<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();


    }
}

выход-> китайский ----

Ответы [ 2 ]

0 голосов
/ 11 декабря 2011

enter image description here Веранда битового потока без:

http://weblog.delacour.net/archives/2005/04/bitstream_vera_not_for_me_thanks.php

0 голосов
/ 11 декабря 2011

Поддерживает ли этот шрифт китайские иероглифы? Вы можете попробовать библиотеку iTextAsian . Также см. эту тему .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...