【问题标题】:Chars problems converting HTML to PDF将 HTML 转换为 PDF 的字符问题
【发布时间】:2019-04-15 06:11:30
【问题描述】:

我无法从 html 获取我的 PDF 中的特殊字符。我尝试使用 UTF-8 读取、Windows-1257、ISO-8859-13 等。但没有任何效果,我只是得到空格。

那么问题是如何解决这个问题?

JAVA

    String d1 = "<html><head></head><body>...ą...č...ę...ė...į...š...ų...ū...ž...Ą...Č...Ę...Ė...Į...Š...Ų...Ū...Ž...</body></html>";


    OutputStream myFile = new FileOutputStream(new File("C:\\My\\pdf1.pdf"));
    Document document = new Document();

    document.addCreationDate();
    document.setPageSize(PageSize.A4);
    document.setMargins(36, 36, 36, 36);
    document.setMarginMirroring(true);


    PdfWriter writer = PdfWriter.getInstance(document, myFile);
    document.open();

    XMLWorkerHelper worker = XMLWorkerHelper.getInstance();

    InputStream is;
    //is = new ByteArrayInputStream(d1.getBytes(StandardCharsets.UTF_8));
    is = new ByteArrayInputStream(d1.getBytes("UTF-8"));

    String FONT = "C:\\My\\FreeSans.ttf";
    XMLWorkerFontProvider fontImp = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);
    fontImp.register(FONT);

    worker.parseXHtml(writer, document, is, Charset.forName("UTF-8"), fontImp);

    document.close();
    myFile.close();

【问题讨论】:

  • 您的 html 的 body-tag 中是否缺少 style-属性? String d1 = "&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body style=\"font-family: FreeSans\"&gt;...ą...č...ę...ė...į...š...ų...ū...ž...Ą...Č...Ę...Ė...Į...Š...Ų...Ū...Ž...&lt;/body&gt;&lt;/html&gt;";

标签: java html pdf


【解决方案1】:

Topaco 是的,在我添加字符串“body style...”后,一切正常!

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 2023-03-13
    • 1970-01-01
    • 2013-08-01
    • 2020-09-19
    • 2012-11-07
    • 2017-12-25
    • 2018-06-05
    • 1970-01-01
    相关资源
    最近更新 更多