У меня проблема с библиотекой 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);
Не могли бы вы посоветовать, как лучше всего внедрить его в мой предыдущий код?Спасибо