protected void processOtherNode(final RenderNode node) {
    try {
      final int nodeType = node.getNodeType();
      if (nodeType == LayoutNodeTypes.TYPE_NODE_TEXT
          || nodeType == LayoutNodeTypes.TYPE_NODE_COMPLEX_TEXT) {
        super.processOtherNode(node);
        return;
      }

      if (node.isVirtualNode()) {
        return;
      }

      if (nodeType == LayoutNodeTypes.TYPE_NODE_SPACER) {
        final SpacerRenderNode spacer = (SpacerRenderNode) node;
        final int count = Math.max(1, spacer.getSpaceCount());
        for (int i = 0; i < count; i++) {
          xmlWriter.writeText(" ");
        }
      }
    } catch (final IOException e) {
      throw new RuntimeException("Failed", e);
    }
  }