protected void processRenderableContent(final RenderableReplacedContentBox node) { try { final ReportAttributeMap map = node.getAttributes(); final AttributeList attrs = new AttributeList(); HtmlTagHelper.applyHtmlAttributes(map, attrs); if (attrs.isEmpty() == false) { xmlWriter.writeTag(HtmlPrinter.XHTML_NAMESPACE, DIV_TAG, attrs, XmlWriterSupport.OPEN); } textExtractorHelper.writeLocalAnchor(node.getStyleSheet()); final StyleSheet styleSheet = node.getStyleSheet(); final String target = (String) styleSheet.getStyleProperty(ElementStyleKeys.HREF_TARGET); if (target != null) { textExtractorHelper.handleLinkOnElement(styleSheet, target); } processReplacedContent(node); if (target != null) { xmlWriter.writeCloseTag(); } if (attrs.isEmpty() == false) { xmlWriter.writeCloseTag(); } } catch (final IOException e) { throw new RuntimeException("Failed", e); } catch (final ContentIOException e) { throw new RuntimeException("Failed", e); } }
/** * Prints a paragraph cell. This is a special entry point used by the processContent method and is * never called from elsewhere. This method assumes that the attributes of the paragraph have been * processed as part of the table-cell processing. * * @param box the paragraph box * @throws IOException if an IO error occured. */ protected void processInitialBox(final ParagraphRenderBox box) throws IOException { if (box.getStaticBoxLayoutProperties().isVisible() == false) { return; } final StyleSheet styleSheet = box.getStyleSheet(); final String target = (String) styleSheet.getStyleProperty(ElementStyleKeys.HREF_TARGET); if (target != null) { textExtractorHelper.handleLinkOnElement(styleSheet, target); processStack = new HtmlTextExtractorState(processStack, true); } else { processStack = new HtmlTextExtractorState(processStack, false); } if (Boolean.TRUE.equals( box.getAttributes() .getAttribute(AttributeNames.Html.NAMESPACE, AttributeNames.Html.SUPPRESS_CONTENT)) == false) { processParagraphChilds(box); } if (processStack.isWrittenTag()) { xmlWriter.writeCloseTag(); } processStack = processStack.getParent(); }