Проблемы с символами при преобразовании HTML в PDF

#java #html #pdf

#java #HTML #PDF

Вопрос:

Я не могу получить специальные символы в моем PDF из html. Я пытался использовать чтение 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();
  

Комментарии:

1. style Не отсутствует ли атрибут -в body теге -вашего html? String d1 = "<html><head></head><body style="font-family: FreeSans">...ą...č...ę...ė...į...š...ų...ū...ž...Ą...Č...Ę...Ė...Į...Š...Ų...Ū...Ž...</body></html>";

Ответ №1:

Вверху справа, после того, как я добавлю в свою строку «стиль тела …», все работает отлично!