iTextSharp.text.pdf.AcroFields.GetField C# (CSharp) Метод

GetField() публичный Метод

public GetField ( String name ) : String
name String
Результат String
        public String GetField(String name) {
            if (xfa.XfaPresent) {
                name = xfa.FindFieldName(name, this);
                if (name == null)
                    return null;
                name = XfaForm.Xml2Som.GetShortName(name);
                return XfaForm.GetNodeText(xfa.FindDatasetsNode(name));
            }
            Item item = (Item)fields[name];
            if (item == null)
                return null;
            lastWasString = false;
            PdfDictionary mergedDict = item.GetMerged( 0 );

            // Jose A. Rodriguez posted a fix to the mailing list (May 11, 2009)
            // explaining that the value can also be a stream value
            // the fix was made against an old iText version. Bruno adapted it.
            PdfObject v = PdfReader.GetPdfObject(mergedDict.Get(PdfName.V));
            if (v == null)
                return "";
            if (v is PRStream) {
                byte[] valBytes = PdfReader.GetStreamBytes((PRStream)v);
                return PdfEncodings.ConvertToString(valBytes, BaseFont.WINANSI);
            }
            
            PdfName type = mergedDict.GetAsName(PdfName.FT);
            if (PdfName.BTN.Equals(type)) {
                PdfNumber ff = mergedDict.GetAsNumber(PdfName.FF);
            int flags = 0;
                if (ff != null)
                    flags = ff.IntValue;
                if ((flags & PdfFormField.FF_PUSHBUTTON) != 0)
                    return "";
                String value = "";
                if (v is PdfName)
                    value = PdfName.DecodeName(v.ToString());
                else if (v is PdfString)
                    value = ((PdfString)v).ToUnicodeString();
                PdfArray opts = item.GetValue(0).GetAsArray(PdfName.OPT);
                if (opts != null) {
                    int idx = 0;
                    try {
                        idx = int.Parse(value);
                        PdfString ps = opts.GetAsString(idx);
                        value = ps.ToUnicodeString();
                        lastWasString = true;
                    }
                    catch {
                    }
                }
                return value;
            }
            if (v is PdfString) {
                lastWasString = true;
                return ((PdfString)v).ToUnicodeString();
            } else if (v is PdfName) {
                return PdfName.DecodeName(v.ToString());
            } else
                return "";
        }

Usage Example

Пример #1
0
        public void fillBoxesIfExists(AcroFields pdfFormFields)
        {
            String temp = pdfFormFields.GetField(dayOfWeek + " Kick Starting Time");
            if (temp != "")
                KickStart.Value = DateTime.ParseExact(temp, "hh:mm", CultureInfo.InvariantCulture);
            temp = pdfFormFields.GetField(dayOfWeek + " Kick Ending Time");
            if (temp != "")
            KickEnd.Value = DateTime.ParseExact(temp, "hh:mm", CultureInfo.InvariantCulture);

            KickTopic.Text = pdfFormFields.GetField(dayOfWeek + " Kick Topic");
            KickText.Text = pdfFormFields.GetField(dayOfWeek + " Kick Text");

            togglePermissions(pdfFormFields);

            AMTopic.Text = pdfFormFields.GetField(dayOfWeek + " AM Topic");
            AMText.Text = pdfFormFields.GetField(dayOfWeek + " AM Text");

            PMTopic.Text = pdfFormFields.GetField(dayOfWeek + " PM Topic");
            PMText.Text = pdfFormFields.GetField(dayOfWeek + " PM Text");
        }
All Usage Examples Of iTextSharp.text.pdf.AcroFields::GetField