code: @Override
     public final void draw(Rectangle rect, String genericTag) throws VectorPrintException {
        if (getValue(SHADOW, Boolean.class)) {
           drawShadow(rect.getLeft() + getShiftx(), rect.getTop() + getShifty(), rect.getWidth(), rect.getHeight(), genericTag);
        }
        PdfContentByte canvas = getPreparedCanvas();
        draw(canvas, rect.getLeft() + getShiftx(), rect.getTop() + getShifty(), rect.getWidth(), rect.getHeight(), genericTag);
        resetCanvas(canvas);
     }
docs: Calls {@link #draw(com.itextpdf.text.pdf.PdfContentByte, float, float, float, float, String) } with rect.getLeft()
  + getShiftx(), rect.getTop() + getShifty(), rect.getWidth(), rect.getHeight(), genericTag. When {@link #isShadow()
  } is true {@link #isDrawShadow() } will be set to true, prior to calling
  {@link #draw(com.itextpdf.text.pdf.PdfContentByte, float, float, float, float, java.lang.String) } and to false
  afterwards.
  
  @param rect
  @param genericTag passed on to abstract method
  @throws VectorPrintException
  @see EventHelper#onGenericTag(com.itextpdf.text.pdf.PdfWriter, com.itextpdf.text.Document,
  com.itextpdf.text.Rectangle, java.lang.String)