import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.collections.iterators.ArrayListIterator;

import com.itextpdf.text.Document;

import com.itextpdf.text.pdf.PdfAction;
import com.itextpdf.text.pdf.PdfAnnotation;
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;
import com.itextpdf.text.pdf.PdfWriter;

public class links {

        
        public static void main(String[] args) {
                PdfReader reader=new PdfReader("E:/bookmark.pdf");
                reader.consolidateNamedDestinations();
                Document doc=new Document(reader.getPageSizeWithRotation(1));

                String dest = "E:/links.pdf";
                PdfCopy pdfCopy = new PdfCopy(doc,new FileOutputStream(dest) );
                doc.open();

                for (int i=1; i <= reader.getNumberOfPages() ;i++)
                {
            PdfDictionary pageDic = reader.getPageN(i);
            PdfDestination d = new
PdfDestination(PdfDestination.XYZ,-1,-1,0.0F) ;
            PdfAction act
=PdfAction.gotoLocalPage(reader.getNumberOfPages(), d, pdfCopy);
            if (pageDic.get(PdfName.ANNOTS) != null)
            {
                
                        //reader.addPdfObject(pageDic.get(PdfName.ANNOTS));
                PdfArray arrAnnot =
(PdfArray)reader.addPdfObject(pageDic.get(PdfName.ANNOTS));
                
                for (int j = 0; j < arrAnnot.size(); ++j)
                {
                    PdfDictionary annotation =
(PdfDictionary)PdfReader.GetPdfObjectRelease(arrAnnot[j]);
                    if 
                    (PdfName.LINK.equals(annotation.get(PdfName.SUBTYPE)))
                    {
                        annotation.remove(PdfName.DEST);
                        annotation.put(PdfName.DEST, act);
                    }
                }
            }

            pdfCopy.addPage(pdfCopy .getImportedPage(reader, i));
     }

                pdfCopy.close(); 
        }

}

Here is my Code, my error in this line it needs PRInderectReference and with
its type cast but i need pdfArray to traverse
PdfArray arrAnnot =
(PdfArray)reader.addPdfObject(pageDic.get(PdfName.ANNOTS));
Using itext Pdf
<http://itext-general.2136553.n4.nabble.com/file/n4659908/image.png> 



--
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-tp4659908.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

Reply via email to