iTextSharp.text.pdf.PdfWriter.GetPageReference C# (CSharp) Méthode

GetPageReference() public méthode

public GetPageReference ( int page ) : PdfIndirectReference
page int
Résultat PdfIndirectReference
        public virtual PdfIndirectReference GetPageReference(int page)
        {
            --page;
            if (page < 0)
                throw new ArgumentOutOfRangeException(MessageLocalization.GetComposedMessage("the.page.number.must.be.gt.eq.1"));
            PdfIndirectReference refa;
            if (page < pageReferences.Count) {
                refa = pageReferences[page];
                if (refa == null) {
                    refa = body.PdfIndirectReference;
                    pageReferences[page] = refa;
                }
            }
            else {
                int empty = page - pageReferences.Count;
                for (int k = 0; k < empty; ++k)
                    pageReferences.Add(null);
                refa = body.PdfIndirectReference;
                pageReferences.Add(refa);
            }
            return refa;
        }

Usage Example

 internal static void CreateOutlineAction(PdfDictionary outline, Dictionary<String, Object> map, PdfWriter writer, bool namedAsNames) {
     try {
         String action = GetVal(map, "Action");
         if ("GoTo".Equals(action)) {
             String p;
             if ((p = GetVal(map, "Named")) != null) {
                 if (namedAsNames)
                     outline.Put(PdfName.DEST, new PdfName(p));
                 else
                     outline.Put(PdfName.DEST, new PdfString(p, null));
             }
             else if ((p = GetVal(map, "Page")) != null) {
                 PdfArray ar = new PdfArray();
                 StringTokenizer tk = new StringTokenizer(p);
                 int n = int.Parse(tk.NextToken());
                 ar.Add(writer.GetPageReference(n));
                 if (!tk.HasMoreTokens()) {
                     ar.Add(PdfName.XYZ);
                     ar.Add(new float[]{0, 10000, 0});
                 }
                 else {
                     String fn = tk.NextToken();
                     if (fn.StartsWith("/"))
                         fn = fn.Substring(1);
                     ar.Add(new PdfName(fn));
                     for (int k = 0; k < 4 && tk.HasMoreTokens(); ++k) {
                         fn = tk.NextToken();
                         if (fn.Equals("null"))
                             ar.Add(PdfNull.PDFNULL);
                         else
                             ar.Add(new PdfNumber(fn));
                     }
                 }
                 outline.Put(PdfName.DEST, ar);
             }
         }
         else if ("GoToR".Equals(action)) {
             String p;
             PdfDictionary dic = new PdfDictionary();
             if ((p = GetVal(map, "Named")) != null)
                 dic.Put(PdfName.D, new PdfString(p, null));
             else if ((p = GetVal(map, "NamedN")) != null)
                 dic.Put(PdfName.D, new PdfName(p));
             else if ((p = GetVal(map, "Page")) != null){
                 PdfArray ar = new PdfArray();
                 StringTokenizer tk = new StringTokenizer(p);
                 ar.Add(new PdfNumber(tk.NextToken()));
                 if (!tk.HasMoreTokens()) {
                     ar.Add(PdfName.XYZ);
                     ar.Add(new float[]{0, 10000, 0});
                 }
                 else {
                     String fn = tk.NextToken();
                     if (fn.StartsWith("/"))
                         fn = fn.Substring(1);
                     ar.Add(new PdfName(fn));
                     for (int k = 0; k < 4 && tk.HasMoreTokens(); ++k) {
                         fn = tk.NextToken();
                         if (fn.Equals("null"))
                             ar.Add(PdfNull.PDFNULL);
                         else
                             ar.Add(new PdfNumber(fn));
                     }
                 }
                 dic.Put(PdfName.D, ar);
             }
             String file = GetVal(map, "File");
             if (dic.Size > 0 && file != null) {
                 dic.Put(PdfName.S,  PdfName.GOTOR);
                 dic.Put(PdfName.F, new PdfString(file));
                 String nw = GetVal(map, "NewWindow");
                 if (nw != null) {
                     if (nw.Equals("true"))
                         dic.Put(PdfName.NEWWINDOW, PdfBoolean.PDFTRUE);
                     else if (nw.Equals("false"))
                         dic.Put(PdfName.NEWWINDOW, PdfBoolean.PDFFALSE);
                 }
                 outline.Put(PdfName.A, dic);
             }
         }
         else if ("URI".Equals(action)) {
             String uri = GetVal(map, "URI");
             if (uri != null) {
                 PdfDictionary dic = new PdfDictionary();
                 dic.Put(PdfName.S, PdfName.URI);
                 dic.Put(PdfName.URI, new PdfString(uri));
                 outline.Put(PdfName.A, dic);
             }
         }
         else if ("JS".Equals(action)) {
             String code = GetVal(map, "Code");
             if(code != null) {
                 outline.Put(PdfName.A, PdfAction.JavaScript(code, writer));
             }
         }
         else if ("Launch".Equals(action)) {
             String file = GetVal(map, "File");
             if (file != null) {
                 PdfDictionary dic = new PdfDictionary();
                 dic.Put(PdfName.S, PdfName.LAUNCH);
                 dic.Put(PdfName.F, new PdfString(file));
                 outline.Put(PdfName.A, dic);
             }
         }
     }
     catch  {
         // empty on purpose
     }
 }
All Usage Examples Of iTextSharp.text.pdf.PdfWriter::GetPageReference