Because you are replacing the destination with a single destination. You
need to GET the existing link destination and modify it.

Leonard

On 4/3/14, 4:53 AM, "Paresh Tahiliani" <paresh...@gmail.com> wrote:

>import java.io.FileNotFoundException;
>import java.io.FileOutputStream;
>import java.io.IOException;
>import java.util.ArrayList;
>
>import com.itextpdf.text.Document;
>import com.itextpdf.text.DocumentException;
>
>import com.itextpdf.text.pdf.PdfAction;
>import com.itextpdf.text.pdf.PdfArray;
>import com.itextpdf.text.pdf.PdfCopy;
>import com.itextpdf.text.pdf.PdfDestination;
>import com.itextpdf.text.pdf.PdfDictionary;
>import com.itextpdf.text.pdf.PdfName;
>import com.itextpdf.text.pdf.PdfObject;
>import com.itextpdf.text.pdf.PdfReader;
>
>
>public class links {
>       public static void main(String[] args) throws DocumentException,
>IOException,FileNotFoundException {
>       
>               String src = "E:/bookmark.pdf";
>               String destination = "E:/links.pdf";
>       
>               PdfReader reader=new PdfReader(src);
>               reader.consolidateNamedDestinations();
>               
>               Document doc=new Document();
>
>               PdfCopy pdfCopy = new PdfCopy(doc,new 
> FileOutputStream(destination));
>       
>               doc.open();
>               
>                int n = reader.getNumberOfPages();
>                PdfDestination d = new 
> PdfDestination(PdfDestination.XYZ,-1,-1,0.0F) ;
>                PdfAction act = PdfAction.gotoLocalPage(1, d, pdfCopy);
>         for (int i=1; i <= n ;i++)
>               {
>               
>            PdfDictionary pageDic = reader.getPageN(i);
>            PdfArray arrayann = pageDic.getAsArray(PdfName.ANNOTS);
>            if (arrayann != null)
>            {
>                       //reader.addPdfObject(pageDic.get(PdfName.ANNOTS));
>               PdfArray
>annot=(PdfArray)PdfReader.getPdfObject(pageDic.get(PdfName.ANNOTS));
>               ArrayList<PdfObject> arrAnnot = new ArrayList<PdfObject>();
>               arrAnnot = annot.getArrayList();
>               
>                for (int j = 0; j < arrAnnot.size(); j++)
>                {
>                       PdfDictionary annots =
>(PdfDictionary)PdfReader.getPdfObject(arrAnnot.get(j));
>                    if (PdfName.LINK.equals(annots.get(PdfName.SUBTYPE)))
>                    {
>                        annots.remove(PdfName.DEST);
>                        annots.put(PdfName.DEST,act);
>                  
>                    }
>                }
>            }
>            pdfCopy.addPage(pdfCopy.getImportedPage(reader, i));
>            pdfCopy.freeReader(reader);
>      }
>         reader.close();
>               pdfCopy.close();
>               doc.close();
>               System.out.println("The Pdf is Created..");
>       }
>
>}
>
>This code works fine. all links properties to inherit zoom in existing
>document.
>but there is one problem that the links containing pages or their
>destination change to local page.
>i want to change the property only. link destination page numbers remain
>same as existing document only.
>is it possible in itext.
>anyone
>
>
>
>--
>View this message in context:
>http://itext-general.2136553.n4.nabble.com/I-Want-to-Change-all-the-Links-
>Destination-of-Existing-Pdf-to-PdfDestination-XYZ-1-1-0-0F-tp4659908p46599
>09.html
>Sent from the iText - General mailing list archive at Nabble.com.
>
>--------------------------------------------------------------------------
>----
>_______________________________________________
>iText-questions mailing list
>iText-questions@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/itext-questions
>
>iText(R) is a registered trademark of 1T3XT BVBA.
>Many questions posted to this list can (and will) be answered with a
>reference to the iText book: http://www.itextpdf.com/book/
>Please check the keywords list before you ask for examples:
>http://itextpdf.com/themes/keywords.php


------------------------------------------------------------------------------
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference 
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples: 
http://itextpdf.com/themes/keywords.php

Reply via email to