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);
    }
  }