0

我有带有外部 CSS 的 HTML 文件。我想从 HTML 文件创建 PDF,但 endcoing 不起作用。HTML 文件工作正常,但转换为 PDF 后,PDF 中的某些字符丢失。(čřě...)即使我在 PDFWriter 构造函数中设置 Charset 也会发生这种情况。

请问我该如何解决?

 public void createPDF() {
    try {

        Document document = new Document();


        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(username + ID + ".pdf"));

        document.open();
        String hovinko = username + ID + ".html";

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

        document.close();

        System.out.println("PDF Created!");
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
4

3 回答 3

0

在将特殊字符写入 PDF 之前,您是否尝试过转换它们?

yourHTMLString.replaceAll(oldChar, newChar);

ć = ć
ř = ř
ě = ě

如果您需要更多特殊字符,请访问此链接

编辑:然后试试这个,它对我有用:

BaseFont basefont = BaseFont.createFont("C:/Windows/Fonts/ARIAL.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
            Font font = new Font(basefont, 12);
            document.add(new Paragraph("čřě", font));
于 2014-03-25T17:31:27.080 回答
0

用下面的逻辑试试。它对我有用:

InputStream is = new ByteArrayInputStream(hovinko.getBytes(Charset.forName("UTF-8")));
XMLWorkerHelper.getInstance().parseXHtml(writer, document, is, Charset.forName("UTF-8"));

我使用了 xmlworker 5.5.12 版和 itextpdf 5.5.12 版。

于 2017-11-24T07:51:53.590 回答
0

我正在努力解决 sam 问题(波兰语特殊符号)。对我来说,解决方案是在 html 代码中编写一个好的字体系列。

于 2021-01-18T13:49:49.837 回答