protected void finishCanvasBox(final CanvasRenderBox box) {
    if (box.getStaticBoxLayoutProperties().isVisible() == false) {
      return;
    }

    textExtractorHelper.finishBox(box.getInstanceId(), box.getAttributes());
  }
  /**
   * Prints the contents of a canvas box. This can happen only once per cell, as every canvas box
   * creates its own cell at some point. If for some strange reason a canvas box appears in the
   * middle of a box-structure, your layouter is probably a mess and this method will treat the box
   * as a generic content container.
   *
   * @param box the canvas box
   * @return true, if the child content will be processed, false otherwise.
   */
  protected boolean startCanvasBox(final CanvasRenderBox box) {
    if (box.getStaticBoxLayoutProperties().isVisible() == false) {
      return false;
    }

    return textExtractorHelper.startBox(
        box.getInstanceId(),
        box.getAttributes(),
        box.getStyleSheet(),
        box.getBoxDefinition(),
        false);
  }