private void insertGeneratedAppearance( PDAnnotationWidget fieldWidget, OutputStream output,
PDFont pdFont, List tokens, PDAppearanceStream appearanceStream ) throws IOException
{
PrintWriter printWriter = new PrintWriter( output, true );
float fontSize = 0.0f;
PDRectangle boundingBox = null;
boundingBox = appearanceStream.getBoundingBox();
if( boundingBox == null )
{
boundingBox = fieldWidget.getRectangle().createRetranslatedRectangle();
}
printWriter.println( "BT" );
if( defaultAppearance != null )
{
String daString = defaultAppearance.getString();
PDFStreamParser daParser = new PDFStreamParser(new ByteArrayInputStream( daString.getBytes("ISO-8859-1") ), null );
daParser.parse();
List<Object> daTokens = daParser.getTokens();
fontSize = calculateFontSize( pdFont, boundingBox, tokens, daTokens );
int fontIndex = daTokens.indexOf( PDFOperator.getOperator( "Tf" ) );
if(fontIndex != -1 )
{
daTokens.set( fontIndex-1, new COSFloat( fontSize ) );
}
ContentStreamWriter daWriter = new ContentStreamWriter(output);
daWriter.writeTokens( daTokens );
}
printWriter.println( getTextPosition( boundingBox, pdFont, fontSize, tokens ) );
int q = getQ();
if( q == PDTextbox.QUADDING_LEFT )
{
//do nothing because left is default
}
else if( q == PDTextbox.QUADDING_CENTERED ||
q == PDTextbox.QUADDING_RIGHT )
{
float fieldWidth = boundingBox.getWidth();
float stringWidth = (pdFont.getStringWidth( value )/1000)*fontSize;
float adjustAmount = fieldWidth - stringWidth - 4;
if( q == PDTextbox.QUADDING_CENTERED )
{