html-разбор исключений в iText - PullRequest
       7

html-разбор исключений в iText

0 голосов
/ 15 октября 2018

У меня есть ap: редактор с простыми словами, где пользователи вставляют текстовые документы, имеющие несколько шаблонов электронной почты, и сохраняют их в БД.

Теперь мне нужно преобразовать этот контент в pdf.Но то, что я возвращаю из БД, - это преобразование этого документа в HTML.

При синтаксическом анализе этого HTML-содержимого с помощью iText я сталкиваюсь с множеством ошибок из-за неправильного xhtml, как показано ниже

<span style="font-family: Arial, Verdana; font-size: 13.3333px;"><img src="9#credit_cards_logos#9"></span>

При использовании приведенного выше фрагмента я получаю ошибку недопустимый тег span,Ожидаемое закрытие тега img. Когда я удаляю тег span вокруг img, он работает нормально.

Теперь подобные ошибки встречаются повсюду.И невозможно вручную все исправить и исправить, поскольку это огромный шаблон (есть сотни шаблонов).

error

returned html

what the user uploads

Вот моя функция, которую я использую для ее анализа.

public StreamedContent getFile() throws IOException, DocumentException{
        final PortletResponse portletResponse = (PortletResponse) FacesContext.getCurrentInstance().getExternalContext()
                .getResponse();
        final HttpServletResponse res = PortalUtil.getHttpServletResponse(portletResponse);
        res.setContentType("application/pdf");
        res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
        res.setHeader("Content-Disposition", "attachment; filename=" + subject + ".pdf");
        res.setHeader("Refresh", "1");
        res.flushBuffer();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        OutputStream out = res.getOutputStream();
        Document document = new Document(PageSize.LETTER);
        PdfWriter pdfWriter =PdfWriter.getInstance(document, baos);
        document.open();
        document.addCreationDate();
        XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
        //htmlWorker.parse(new StringReader(getMessage()));
        worker.parseXHtml(pdfWriter, document, new StringReader(getMessage()));
        document.close();
        baos.writeTo(out);
        out.flush();
        out.close();
        return null;
    }

Есть лиОбойти это?

РЕДАКТИРОВАТЬ ____________

Есть ли что-то вроде p: dataExporter ( только для таблиц данных ) в простых лицах, которые преобразуют содержимое в pdf без необходимости разбора HTML.

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Это сработало для меня: html2pdfrocket

https://www.html2pdfrocket.com/convert-java-html-to-pdf

У них есть бесплатный доступный уровень.

0 голосов
/ 15 октября 2018

Ответ на

Есть ли что-то вроде p: dataExporter (только для таблиц данных) в простых лицах, которые преобразуют содержимое в pdf без необходимости разбора HTML.

есть: нет, нет

...