public void drawString(String str, int x, int y){if (str == null || str.isEmpty())return;Font excelFont = font;if ( font.getName().equals( "SansSerif" ) ){excelFont = new Font( "Arial", font.getStyle(), (int) ( font.getSize() / verticalPixelsPerPoint ) );}else{excelFont = new Font( font.getName(), font.getStyle(), (int) ( font.getSize() / verticalPixelsPerPoint ));}FontDetails d = StaticFontMetrics.getFontDetails( excelFont );int width = d.getStringWidth( str ) * 8  + 12;int height = (int) ( ( font.getSize() / verticalPixelsPerPoint ) + 6 ) * 2;y -= ( font.getSize() / verticalPixelsPerPoint ) + 2 * verticalPixelsPerPoint;    HSSFTextbox textbox = escherGroup.createTextbox( new HSSFChildAnchor( x, y, x + width, y + height ) );textbox.setNoFill( true );textbox.setLineStyle( HSSFShape.LINESTYLE_NONE );HSSFRichTextString s = new HSSFRichTextString( str );HSSFFont hssfFont = matchFont( excelFont );s.applyFont( hssfFont );textbox.setString( s );}

public void DrawString(String str, int x, int y){if (string.IsNullOrEmpty(str))return;using (Font excelFont = new Font(font.Name.Equals("SansSerif") ? "Arial" : font.Name, (int)(font.Size / verticalPixelsPerPoint), font.Style)){FontDetails d = StaticFontMetrics.GetFontDetails(excelFont);int width = (int)((d.GetStringWidth(str) * 8) + 12);int height = (int)((font.Size / verticalPixelsPerPoint) + 6) * 2;y -= Convert.ToInt32((font.Size / verticalPixelsPerPoint) + 2 * verticalPixelsPerPoint);    HSSFTextbox textbox = escherGroup.CreateTextbox(new HSSFChildAnchor(x, y, x + width, y + height));textbox.IsNoFill = (true);textbox.LineStyle = LineStyle.None;HSSFRichTextString s = new HSSFRichTextString(str);HSSFFont hssfFont = MatchFont(excelFont);s.ApplyFont(hssfFont);textbox.String = (s);}}
