public void DrawRadioAppearences(PdfFormField field, string value, float llx, float lly, float urx, float ury) { PdfAppearance tpOn = PdfAppearance.CreateAppearance(writer, urx - llx, ury - lly); tpOn.DrawRadioField(0f, 0f, urx - llx, ury - lly, true); field.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, value, tpOn); PdfAppearance tpOff = PdfAppearance.CreateAppearance(writer, urx - llx, ury - lly); tpOff.DrawRadioField(0f, 0f, urx - llx, ury - lly, false); field.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpOff); }
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.Duplicate; tp2.SetFontAndSize(font, fontSize); tp2.ResetRGBColorFill(); field.DefaultAppearanceString = 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); var tokenizer = new 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); }
public void DrawButton(PdfFormField button, string caption, BaseFont font, float fontSize, float llx, float lly, float urx, float ury) { PdfAppearance pa = PdfAppearance.CreateAppearance(writer, urx - llx, ury - lly); pa.DrawButton(0f, 0f, urx - llx, ury - lly, caption, font, fontSize); button.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, pa); }
public PdfFormField AddMap(string name, string value, string url, PdfContentByte appearance, float llx, float lly, float urx, float ury) { PdfAction action = PdfAction.CreateSubmitForm(url, null, PdfAction.SUBMIT_HTML_FORMAT | PdfAction.SUBMIT_COORDINATES); PdfFormField button = new PdfFormField(writer, llx, lly, urx, ury, action); SetButtonParams(button, PdfFormField.FF_PUSHBUTTON, name, null); PdfAppearance pa = PdfAppearance.CreateAppearance(writer, urx - llx, ury - lly); pa.Add(appearance); button.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, pa); AddFormField(button); return(button); }
public void DrawCheckBoxAppearences(PdfFormField field, string value, float llx, float lly, float urx, float ury) { BaseFont font = BaseFont.CreateFont(BaseFont.ZAPFDINGBATS, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED); float size = (ury - lly); PdfAppearance tpOn = PdfAppearance.CreateAppearance(writer, urx - llx, ury - lly); PdfAppearance tp2 = (PdfAppearance)tpOn.Duplicate; tp2.SetFontAndSize(font, size); tp2.ResetRGBColorFill(); field.DefaultAppearanceString = 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); }
/** * @param field * @param llx * @param lly * @param urx * @param ury */ public void DrawSignatureAppearences(PdfFormField field, float llx, float lly, float urx, float ury) { PdfAppearance tp = PdfAppearance.CreateAppearance(writer, urx - llx, ury - lly); tp.SetGrayFill(1.0f); tp.Rectangle(0, 0, urx - llx, ury - lly); tp.Fill(); tp.SetGrayStroke(0); tp.SetLineWidth(1); tp.Rectangle(0.5f, 0.5f, urx - llx - 0.5f, ury - lly - 0.5f); tp.ClosePathStroke(); tp.SaveState(); tp.Rectangle(1, 1, urx - llx - 2, ury - lly - 2); tp.Clip(); tp.NewPath(); tp.RestoreState(); field.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp); }
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.Duplicate; tp2.SetFontAndSize(font, fontSize); tp2.ResetRGBColorFill(); field.DefaultAppearanceString = 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); }
public PdfFormField AddMap(string name, string value, string url, PdfContentByte appearance, float llx, float lly, float urx, float ury) { PdfAction action = PdfAction.CreateSubmitForm(url, null, PdfAction.SUBMIT_HTML_FORMAT | PdfAction.SUBMIT_COORDINATES); PdfFormField button = new PdfFormField(writer, llx, lly, urx, ury, action); SetButtonParams(button, PdfFormField.FF_PUSHBUTTON, name, null); PdfAppearance pa = PdfAppearance.CreateAppearance(writer, urx - llx, ury - lly); pa.Add(appearance); button.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, pa); AddFormField(button); return button; }
/** Gets a new text field. * @throws IOException on error * @throws DocumentException on error * @return a new text field */ public PdfFormField GetTextField() { if (maxCharacterLength <= 0) { options &= ~COMB; } if ((options & COMB) != 0) { options &= ~MULTILINE; } PdfFormField field = PdfFormField.CreateTextField(writer, false, false, maxCharacterLength); field.SetWidget(box, PdfAnnotation.HIGHLIGHT_INVERT); switch (alignment) { case Element.ALIGN_CENTER: field.Quadding = PdfFormField.Q_CENTER; break; case Element.ALIGN_RIGHT: field.Quadding = PdfFormField.Q_RIGHT; break; } if (rotation != 0) { field.MKRotation = rotation; } if (fieldName != null) { field.FieldName = fieldName; if (!"".Equals(text)) { field.ValueAsString = text; } if (defaultText != null) { field.DefaultValueAsString = defaultText; } if ((options & READ_ONLY) != 0) { field.SetFieldFlags(PdfFormField.FF_READ_ONLY); } if ((options & REQUIRED) != 0) { field.SetFieldFlags(PdfFormField.FF_REQUIRED); } if ((options & MULTILINE) != 0) { field.SetFieldFlags(PdfFormField.FF_MULTILINE); } if ((options & DO_NOT_SCROLL) != 0) { field.SetFieldFlags(PdfFormField.FF_DONOTSCROLL); } if ((options & PASSWORD) != 0) { field.SetFieldFlags(PdfFormField.FF_PASSWORD); } if ((options & FILE_SELECTION) != 0) { field.SetFieldFlags(PdfFormField.FF_FILESELECT); } if ((options & DO_NOT_SPELL_CHECK) != 0) { field.SetFieldFlags(PdfFormField.FF_DONOTSPELLCHECK); } if ((options & COMB) != 0) { field.SetFieldFlags(PdfFormField.FF_COMB); } } field.BorderStyle = new PdfBorderDictionary(borderWidth, borderStyle, new PdfDashPattern(3)); PdfAppearance tp = GetAppearance(); field.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp); PdfAppearance da = (PdfAppearance)tp.Duplicate; da.SetFontAndSize(RealFont, fontSize); if (textColor == null) { da.SetGrayFill(0); } else { da.SetColorFill(textColor); } field.DefaultAppearanceString = da; if (borderColor != null) { field.MKBorderColor = borderColor; } if (backgroundColor != null) { field.MKBackgroundColor = backgroundColor; } switch (visibility) { case HIDDEN: field.Flags = PdfAnnotation.FLAGS_PRINT | PdfAnnotation.FLAGS_HIDDEN; break; case VISIBLE_BUT_DOES_NOT_PRINT: break; case HIDDEN_BUT_PRINTABLE: field.Flags = PdfAnnotation.FLAGS_PRINT | PdfAnnotation.FLAGS_NOVIEW; break; default: field.Flags = PdfAnnotation.FLAGS_PRINT; break; } return(field); }
protected PdfFormField GetChoiceField(bool isList) { options &= (~MULTILINE) & (~COMB); String[] uchoices = choices; if (uchoices == null) { uchoices = new String[0]; } int topChoice = choiceSelection; if (topChoice >= uchoices.Length) { topChoice = uchoices.Length - 1; } if (text == null) { text = ""; //fixed by Kazuya Ujihara (ujihara.jp) } if (topChoice >= 0) { text = uchoices[topChoice]; } if (topChoice < 0) { topChoice = 0; } PdfFormField field = null; String[,] mix = null; if (choiceExports == null) { if (isList) { field = PdfFormField.CreateList(writer, uchoices, topChoice); } else { field = PdfFormField.CreateCombo(writer, (options & EDIT) != 0, uchoices, topChoice); } } else { mix = new String[uchoices.Length, 2]; for (int k = 0; k < mix.GetLength(0); ++k) { mix[k, 0] = mix[k, 1] = uchoices[k]; } int top = Math.Min(uchoices.Length, choiceExports.Length); for (int k = 0; k < top; ++k) { if (choiceExports[k] != null) { mix[k, 0] = choiceExports[k]; } } if (isList) { field = PdfFormField.CreateList(writer, mix, topChoice); } else { field = PdfFormField.CreateCombo(writer, (options & EDIT) != 0, mix, topChoice); } } field.SetWidget(box, PdfAnnotation.HIGHLIGHT_INVERT); if (rotation != 0) { field.MKRotation = rotation; } if (fieldName != null) { field.FieldName = fieldName; if (uchoices.Length > 0) { if (mix != null) { field.ValueAsString = mix[topChoice, 0]; field.DefaultValueAsString = mix[topChoice, 0]; } else { field.ValueAsString = text; field.DefaultValueAsString = text; } } if ((options & READ_ONLY) != 0) { field.SetFieldFlags(PdfFormField.FF_READ_ONLY); } if ((options & REQUIRED) != 0) { field.SetFieldFlags(PdfFormField.FF_REQUIRED); } if ((options & DO_NOT_SPELL_CHECK) != 0) { field.SetFieldFlags(PdfFormField.FF_DONOTSPELLCHECK); } } field.BorderStyle = new PdfBorderDictionary(borderWidth, borderStyle, new PdfDashPattern(3)); PdfAppearance tp; if (isList) { tp = GetListAppearance(); if (topFirst > 0) { field.Put(PdfName.TI, new PdfNumber(topFirst)); } } else { tp = GetAppearance(); } field.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp); PdfAppearance da = (PdfAppearance)tp.Duplicate; da.SetFontAndSize(RealFont, fontSize); if (textColor == null) { da.SetGrayFill(0); } else { da.SetColorFill(textColor); } field.DefaultAppearanceString = da; if (borderColor != null) { field.MKBorderColor = borderColor; } if (backgroundColor != null) { field.MKBackgroundColor = backgroundColor; } switch (visibility) { case HIDDEN: field.Flags = PdfAnnotation.FLAGS_PRINT | PdfAnnotation.FLAGS_HIDDEN; break; case VISIBLE_BUT_DOES_NOT_PRINT: break; case HIDDEN_BUT_PRINTABLE: field.Flags = PdfAnnotation.FLAGS_PRINT | PdfAnnotation.FLAGS_NOVIEW; break; default: field.Flags = PdfAnnotation.FLAGS_PRINT; break; } return(field); }
/** * Gets a radio or check field. * @param isRadio <CODE>true</CODE> to get a radio field, <CODE>false</CODE> to get * a check field * @throws IOException on error * @throws DocumentException on error * @return the field */ protected PdfFormField GetField(bool isRadio) { PdfFormField field = null; if (isRadio) { field = PdfFormField.CreateEmpty(writer); } else { field = PdfFormField.CreateCheckBox(writer); } field.SetWidget(box, PdfAnnotation.HIGHLIGHT_INVERT); if (!isRadio) { field.FieldName = fieldName; if ((options & READ_ONLY) != 0) { field.SetFieldFlags(PdfFormField.FF_READ_ONLY); } if ((options & REQUIRED) != 0) { field.SetFieldFlags(PdfFormField.FF_REQUIRED); } field.ValueAsName = vchecked ? onValue : "Off"; } if (text != null) { field.MKNormalCaption = text; } if (rotation != 0) { field.MKRotation = rotation; } field.BorderStyle = new PdfBorderDictionary(borderWidth, borderStyle, new PdfDashPattern(3)); PdfAppearance tpon = GetAppearance(isRadio, true); PdfAppearance tpoff = GetAppearance(isRadio, false); field.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, onValue, tpon); field.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpoff); field.AppearanceState = vchecked ? onValue : "Off"; PdfAppearance da = (PdfAppearance)tpon.Duplicate; da.SetFontAndSize(RealFont, fontSize); if (textColor == null) { da.SetGrayFill(0); } else { da.SetColorFill(textColor); } field.DefaultAppearanceString = da; if (borderColor != null) { field.MKBorderColor = borderColor; } if (backgroundColor != null) { field.MKBackgroundColor = backgroundColor; } switch (visibility) { case HIDDEN: field.Flags = PdfAnnotation.FLAGS_PRINT | PdfAnnotation.FLAGS_HIDDEN; break; case VISIBLE_BUT_DOES_NOT_PRINT: break; case HIDDEN_BUT_PRINTABLE: field.Flags = PdfAnnotation.FLAGS_PRINT | PdfAnnotation.FLAGS_NOVIEW; break; default: field.Flags = PdfAnnotation.FLAGS_PRINT; break; } return(field); }