iTextSharp.text.pdf.PdfArray.GetAsIndirectObject C# (CSharp) Метод

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

public GetAsIndirectObject ( int idx ) : PdfIndirectReference
idx int
Результат PdfIndirectReference
    public PdfIndirectReference GetAsIndirectObject(int idx) {
        PdfIndirectReference refi = null;
        PdfObject orig = this[idx]; // not getDirect this time.
        if (orig != null && orig.IsIndirect())
            refi = (PdfIndirectReference) orig;
        return refi;
    }
}

Usage Example

Пример #1
0
        /**
         * Sets the XFA key from a byte array. The old XFA is erased.
         * @param form the data
         * @param reader the reader
         * @param writer the writer
         * @throws java.io.IOException on error
         */
        public static void SetXfa(XfaForm form, PdfReader reader, PdfWriter writer)
        {
            PdfDictionary af = (PdfDictionary)PdfReader.GetPdfObjectRelease(reader.Catalog.Get(PdfName.ACROFORM));

            if (af == null)
            {
                return;
            }
            PdfObject xfa = GetXfaObject(reader);

            if (xfa.IsArray())
            {
                PdfArray ar = (PdfArray)xfa;
                int      t  = -1;
                int      d  = -1;
                for (int k = 0; k < ar.Size; k += 2)
                {
                    PdfString s = ar.GetAsString(k);
                    if ("template".Equals(s.ToString()))
                    {
                        t = k + 1;
                    }
                    if ("datasets".Equals(s.ToString()))
                    {
                        d = k + 1;
                    }
                }
                if (t > -1 && d > -1)
                {
                    reader.KillXref(ar.GetAsIndirectObject(t));
                    reader.KillXref(ar.GetAsIndirectObject(d));
                    PdfStream tStream = new PdfStream(SerializeDoc(form.templateNode));
                    tStream.FlateCompress(writer.CompressionLevel);
                    ar[t] = writer.AddToBody(tStream).IndirectReference;
                    PdfStream dStream = new PdfStream(SerializeDoc(form.datasetsNode));
                    dStream.FlateCompress(writer.CompressionLevel);
                    ar[d] = writer.AddToBody(dStream).IndirectReference;
                    af.Put(PdfName.XFA, new PdfArray(ar));
                    return;
                }
            }
            reader.KillXref(af.Get(PdfName.XFA));
            PdfStream str = new PdfStream(SerializeDoc(form.domDocument));

            str.FlateCompress(writer.CompressionLevel);
            PdfIndirectReference refe = writer.AddToBody(str).IndirectReference;

            af.Put(PdfName.XFA, refe);
        }
All Usage Examples Of iTextSharp.text.pdf.PdfArray::GetAsIndirectObject