layoutPointY2PDF(text.getAbsoluteY()+text.getHeight()/2), pdfMeasure(lineWidth),
layoutPointY2PDF(text.getAbsoluteY() + text.getFontInfo().getLineThroughPosition()), text.getFontInfo().getLineWidth(),
	protected void drawText( ITextArea text )	{	 		IStyle style = text.getStyle();		assert style!=null; 			    //style.getFontVariant();     	small-caps or normal	    //FIXME does NOT support small-caps now		float fontSize = pdfMeasure( PropertyUtil.getDimensionValue(	        	style.getProperty(StyleConstants.STYLE_FONT_SIZE)) );		float characterSpacing = pdfMeasure( PropertyUtil.getDimensionValue(	        	style.getProperty(StyleConstants.STYLE_LETTER_SPACING)) );		float wordSpacing = pdfMeasure( PropertyUtil.getDimensionValue(	        	style.getProperty(StyleConstants.STYLE_WORD_SPACING)) );		cb.saveState();		//start drawing the text content	    cb.beginText();	        	    //set the font handler	    FontHandler fh = new FontHandler((ITextContent)text.getContent());	    fh.selectFont(text.getText());	    cb.setFontAndSize(fh.getBaseFont(), fontSize); 		cb.setCharacterSpacing(characterSpacing);		cb.setWordSpacing(wordSpacing);	        	    cb.setTextMatrix( layoutAreaX2PDF(text.getAbsoluteX()), 	    		layoutAreaY2PDF(text.getAbsoluteY(), (int)(fh.getBaseline()*layout2PdfRatio)));	    Color color = PropertyUtil.getColor(style.getProperty(StyleConstants.STYLE_COLOR));	    if (null != color)	    {	    	cb.setColorFill(color);	    }		cb.showText(text.getText());		cb.endText();		cb.restoreState();	        		//draw the overline,throughline or underline for the text if it has any. 	    //set 1/20 of fontSize as the line width	    int lineWidth = PropertyUtil.getDimensionValue(style.getProperty(StyleConstants.STYLE_FONT_SIZE))/20;		if ("line-through".equalsIgnoreCase(style.getTextLineThrough())) //$NON-NLS-1$	    {	    	drawLine( layoutPointX2PDF(text.getAbsoluteX()), 	        		layoutPointY2PDF(text.getAbsoluteY()+text.getHeight()/2), 	        		layoutPointX2PDF(text.getAbsoluteX()+text.getWidth()), 	        		layoutPointY2PDF(text.getAbsoluteY()+text.getHeight()/2), 	        		pdfMeasure(lineWidth), 	        		PropertyUtil.getColor(style.getProperty(StyleConstants.STYLE_COLOR)),  	        		"solid", cb ); //$NON-NLS-1$	    }	    if ("overline".equalsIgnoreCase(style.getTextOverline())) //$NON-NLS-1$	    {		        drawLine( layoutPointX2PDF(text.getAbsoluteX()), 	        		layoutPointY2PDF(text.getAbsoluteY()+2*lineWidth),	        		layoutPointX2PDF(text.getAbsoluteX()+text.getWidth()), 	        		layoutPointY2PDF(text.getAbsoluteY()+lineWidth),	        		pdfMeasure(lineWidth), 	        		PropertyUtil.getColor(style.getProperty(StyleConstants.STYLE_COLOR)),	        		"solid", cb ); //$NON-NLS-1$	    }		if ("underline".equalsIgnoreCase(style.getTextUnderline())) //$NON-NLS-1$	    {	        drawLine(layoutPointX2PDF(text.getAbsoluteX()), 	        		layoutPointY2PDF(text.getAbsoluteY()+text.getHeight()-lineWidth/2),	        		layoutPointX2PDF(text.getAbsoluteX()+text.getWidth()), 	        		layoutPointY2PDF(text.getAbsoluteY()+text.getHeight()-lineWidth/2),	        		pdfMeasure(lineWidth), 	        		PropertyUtil.getColor(style.getProperty(StyleConstants.STYLE_COLOR)),	        		"solid", cb ); //$NON-NLS-1$	    } 	 		//Check if itself is the destination of a bookmark.		//if so, make a bookmark; if not, do nothing		makeBookmark(text);		//handle hyper-link action		handleHyperlinkAction(text);	}