在Android上使用iText将HTML转换为PDF。如何设置UTF-8(变音符号)? [英] Converting HTML to PDF using iText on Android. How to set UTF-8 (diacritics)?

查看:933
本文介绍了在Android上使用iText将HTML转换为PDF。如何设置UTF-8(变音符号)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

itextg 5.5.3 jar

itextg 5.5.3 jar

xmlworker 5.5.3 jar

xmlworker 5.5.3 jar

test.html

<html xmlns="http://www.w3.org/1999/xhtml" lang="cs">
<head>
</head>
<body>
Test: ěščřžýáíé Ň ň ě Ě

<div style="font-family: 'Times New Roman',font-weight: bold,backround-color blue;">
  Test: ěščřžýáíé Ň ň ě Ě
</div>

</body>
</html>

ConvertHTMLToPDF.java

public class ConvertHTMLToPDF {

    public static final String RESULT = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Notes/test.pdf";
    public static final String RESORCE = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Notes/html/test.html";


        void convertHTMLToPDF() throws IOException, DocumentException {

            Rectangle pagesize = new Rectangle(415,1750);
            Document document = new Document(pagesize);

            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT));

            document.open();

            XMLWorkerHelper.getInstance().parseXHtml(writer, document, new FileInputStream(RESORCE));

            document.close();
            System.out.println( "PDF Created!" );
        }
    }

输出 test.pdf


  • 测试:šžýáíé

  • Test: šžýáíé

测试:šžýáíé

如何获取 test.pdf

How to get test.pdf

 Test: ěščřžýáíé Ň ň ě Ě
 Test: ěščřžýáíé Ň ň ě Ě


推荐答案

请查看XML Worker示例: http://itextpdf.com/sandbox/xmlworker/

Please take a look at the XML Worker examples: http://itextpdf.com/sandbox/xmlworker/

示例1: D07_ParseHtmlAsian

告诉你正在以XML格式读取XML的 parseHtml()方法:

Tell the parseHtml() method that you're reading the XML as UTF-8:

XMLWorkerHelper.getInstance().parseXHtml(writer, document,
    new FileInputStream(HTML), Charset.forName("UTF-8"));

示例2: D07bis_ParseHtmlAsian

告诉解析()您正在将XML读作UTF-8的方法:

Tell the parse() method that you're reading the XML as UTF-8:

XMLWorker worker = new XMLWorker(css, true);
XMLParser p = new XMLParser(worker);
p.parse(new FileInputStream(HTML), Charset.forName("UTF-8"));

请注意,当您想要控制字体时,您会更喜欢这个,而不是示例1用于输出PDF。请与 D07tris_ParseHtmlAsian 进行比较。

Note that you'll prefer this in favor of example 1 when you want to control the fonts that are being used to output the PDF. Please compare with D07tris_ParseHtmlAsian.

这篇关于在Android上使用iText将HTML转换为PDF。如何设置UTF-8(变音符号)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆