| Code with Finding: |
class PdfAcroForm {
/**
* @param field
* @param text
* @param font
* @param fontSize
* @param llx
* @param lly
* @param urx
* @param ury
*/
public void drawSingleLineOfText(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, (ury - lly) / 2 - fontSize * 0.3f);
tp.showText(text);
tp.endText();
tp.restoreState();
tp.endVariableText();
field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp);
}
}
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);
}
}
class PdfAcroForm {
/**
* @param field
* @param value
* @param llx
* @param lly
* @param urx
* @param ury
*/
public void drawCheckBoxAppearences(PdfFormField field, String value, float llx, float lly, float urx, float ury) {
BaseFont font = null;
try {
font = BaseFont.createFont(BaseFont.ZAPFDINGBATS, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
}
catch(Exception e) {
throw new ExceptionConverter(e);
}
float size = ury - lly;
PdfAppearance tpOn = PdfAppearance.createAppearance(writer, urx - llx, ury - lly);
PdfAppearance tp2 = (PdfAppearance)tpOn.getDuplicate();
tp2.setFontAndSize(font, size);
tp2.resetRGBColorFill();
field.setDefaultAppearanceString(tp2);
tpOn.drawTextField(0f, 0f, urx - llx, ury - lly);
tpOn.saveState();
tpOn.resetRGBColorFill();
tpOn.beginText();
tpOn.setFontAndSize(font, size);
tpOn.showTextAligned(PdfContentByte.ALIGN_CENTER, "4", (urx - llx) / 2, (ury - lly) / 2 - size * 0.3f, 0);
tpOn.endText();
tpOn.restoreState();
field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, value, tpOn);
PdfAppearance tpOff = PdfAppearance.createAppearance(writer, urx - llx, ury - lly);
tpOff.drawTextField(0f, 0f, urx - llx, ury - lly);
field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpOff);
}
}
|