QUAD to Sprite Batch?

I’m trying to render TrueType fonts, something similar to java.awt.Font without having to manually convert one to a bitmap font. Slick2D has a class which does this but it draws quads and I’m having a hard time converting the drawString method to use a sprite batch instead. I’m using the lwjgl-basics library which is hosted on github.

The original slick method looks like:

	/**
	 * @see Font#drawString(float, float, String, org.newdawn.slick.Color, int, int)
	 */
	public void drawString(float x, float y, String whatchars,
			org.newdawn.slick.Color color, int startIndex, int endIndex) {
		color.bind();
		fontTexture.bind();

		IntObject intObject = null;
		int charCurrent;

		GL.glBegin(SGL.GL_QUADS);

		int totalwidth = 0;
		for (int i = 0; i < whatchars.length(); i++) {
			charCurrent = whatchars.charAt(i);
			if (charCurrent < 256) {
				intObject = charArray[charCurrent];
			} else {
				intObject = (IntObject)customChars.get( new Character( (char) charCurrent ) );
			} 
			
			if( intObject != null ) {
				if ((i >= startIndex) || (i <= endIndex)) {
					drawQuad((x + totalwidth), // draw x
							y, // draw y
							(x + totalwidth + intObject.width), // draw x2
							(y + intObject.height),  // draw y2
							intObject.storedX, // source x
							intObject.storedY, // source y
							intObject.storedX + intObject.width, // source x2
							intObject.storedY + intObject.height); // source y2
				}
				totalwidth += intObject.width;
			}
		}

		GL.glEnd();
	}

I’ve taken out the occurrences of GL.* calls and made sure that it uses the lwjgl-basics Texture class instead but it renders funny at different sizes, sometimes being stretched or completely off the target texture position of the character.
The draw methods are here

Could someone tell me which one I should be using? Thanks!