iText PDF: запись HTML в PDF в кодировке UTF-8

301
12 апреля 2018, 14:29

Задача: из переданного HTML создать что-то наподобие печати (в заданных координатах) внутри существующего PDF-документа. Я нашел два варианта перекидывания HTML в PDF. Первый метод createPdfUtf8() поддерживает UTF-8, но нет возможности задать координаты. Второй метод createPdf() без возможности задать кодировку, но позволяет играть с координатами. Нет ли возможности задать первому методу координаты или же второму кодировку? Спасибо.

public static void main(String[] args) throws IOException, DocumentException {
    String html_S = "<b style=\"font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; color: rgb(0, 47, 255);text-align:center;\">ЗАО &#171;ПК &#171;Рога и Копыта&#187;</b>"
            + "<b style=\"font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; color: rgb(0, 47, 255);text-align:center;\"><br /> Сертифицирован</b>"
            + "<b style=\"font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; color: rgb(0, 47, 255);text-align:right;\"><br /> Сх. № <u>ПР-RR-00011-18</u></b>"
            + "<b style=\"font-family: Arial; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; color: rgb(0, 47, 255);text-align:center;\"><br /> от <u>10.04.2018</u></b>";
    createPdfUtf8("C:\\1.pdf", html_S);
}
public static void createPdfUtf8(String file, String html_S) throws IOException, DocumentException {
    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
    document.open();
    XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
    InputStream is = new ByteArrayInputStream(html_S.getBytes("UTF-8"));
    worker.parseXHtml(writer, document, is, Charset.forName("UTF-8"));
    document.close();
}
public static void createPdf(String file, String html_S) throws IOException, DocumentException {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(file));
    document.open();
    PdfPTable table = new PdfPTable(2);
    table.addCell("Some rich text:");
    PdfPCell cell = new PdfPCell();
    for (Element e : XMLWorkerHelper.parseToElementList(html_S, null)) {
        cell.addElement(e);
    }
    table.addCell(cell);
    document.add(table);
    document.close();
}

Первый метод отрабатывает сейчас так:

READ ALSO
Как объединить все элементы в коллекции в одну строку и проставить между ними запятую?

Как объединить все элементы в коллекции в одну строку и проставить между ними запятую?

Есть List, типа String, хочу вывести все элементы в одну строчку, через запятую

245
Получение нового токена

Получение нового токена

Добрый день! Проблемка с авторизациейАвторизация в приложении осуществляется по логину и паролю от личного кабинета на сайте

234
Java DateFormat.

Java DateFormat.

Какого вида должна быть дата, при dateStyle=2Не нашел ответа в JavaDocs

199
После клонировании: cannot load module file

После клонировании: cannot load module file

После клонирования проекта с github получил эту ошибку:

210