| In Method: | drawMultiLineOfText(PdfFormField, String, BaseFont, float, float, float, float, float) |
| Code with Finding: |
class PdfAcroForm {
/**
* @param field
* @param text
* @param font
* @param fontSize
* @param llx
* @param lly
* @param urx
* @param ury
*/
public void drawMultiLineOfText(PdfFormField field, String text, BaseFont font, float fontSize, float llx, float lly, float urx, float ury) {
PdfAppearance tp = PdfAppearance.createAppearance(writer, urx - llx, ury - lly);
PdfAppearance tp2 = (PdfAppearance)tp.getDuplicate();
tp2.setFontAndSize(font, fontSize);
tp2.resetRGBColorFill();
field.setDefaultAppearanceString(tp2);
tp.drawTextField(0f, 0f, urx - llx, ury - lly);
tp.beginVariableText();
tp.saveState();
tp.rectangle(3f, 3f, urx - llx - 6f, ury - lly - 6f);
tp.clip();
tp.newPath();
tp.beginText();
tp.setFontAndSize(font, fontSize);
tp.resetRGBColorFill();
tp.setTextMatrix(4, 5);
java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(text, "\n");
float yPos = ury - lly;
while (tokenizer.hasMoreTokens()) {
yPos -= fontSize * 1.2f;
tp.showTextAligned(PdfContentByte.ALIGN_LEFT, tokenizer.nextToken(), 3, yPos, 0);
}
tp.endText();
tp.restoreState();
tp.endVariableText();
field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp);
}
}
|