Создание PDF с вычеркиванием текста из фрагмента HTML с использованием itext pdf - PullRequest
0 голосов
/ 17 декабря 2018

У меня проблема с библиотекой iText в моем java-проекте, поскольку она, очевидно, не поддерживает зачеркнутый текст при преобразовании фрагмента html в файл PDF.Поле ввода моего веб-приложения преобразует его внутренний текст в html, который обрабатывается в этой части кода:

private List<Element> parseHtml(String html) throws Exception{
    // CSS
    CSSResolver cssResolver = new StyleAttrCSSResolver();
    // HTML
    CssAppliers cssAppliers = new CssAppliersImpl(FontFactory.getFontImp());
    HtmlPipelineContext htmlContext = new HtmlPipelineContext(cssAppliers);
    htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());
    htmlContext.autoBookmark(false);
    htmlContext.setImageProvider(new EmbeddedImageProvider());

    // Pipelines
    ElementList elements = new ElementList();
    ElementHandlerPipeline end = new ElementHandlerPipeline(elements, null);
    HtmlPipeline htmlPipeline = new HtmlPipeline(htmlContext, end);
    CssResolverPipeline cssPipeline = new CssResolverPipeline(cssResolver, htmlPipeline);
    // XML Worker
    XMLWorker worker = new XMLWorker(cssPipeline, true);
    XMLParser p = new XMLParser(worker);
    p.parse(new ByteArrayInputStream(html.getBytes()));

    return elements;

}

При обработке символа 's' в качестве зачеркнутого тега он игнорирует его и подчеркивает объект.Единственное решение, которое я смог найти, это реализовать его следующим образом:

Chunk strikethrough = new Chunk("Strikethrough.");
              strikethrough.setUnderline(0.1f, 3f); //0.1 thick, 2 y-location
              doc.addStrike(strikethrough);

Не могли бы вы посоветовать, как лучше всего внедрить его в мой предыдущий код?Спасибо

...