Please stop sending me mail
On Wed, 14 Mar 2012 17:55:07 -0400
 "Sheila M. Morrissey" <[email protected]> wrote:
I wonder if the PDBorderStyleDictionary didn't end up serialized as an indirect object --
Maybe something like the following would work:

PDBorderStyleDictionary bsd = null;
COSObjectable cob = newLink.getBorderStyle();
if (cob instanceof COSObject){
        COSObject cos = (COSObject)cob;
        COSBase base = cos.getObject();
        if (base instanceof PDBorderStyleDictionary){
                bsd = (PDBorderStyleDictionary) base;
        }
}
else if (cob instanceof PDBorderStyleDictionary){
        bsd = PDBorderStyleDictionary cob;
}
If (bsd != null){
 // off you go
}
else {
 // hmmm.. what happened to my dictionary?
}

Sheila


-----Original Message-----
From: Gilad Denneboom [mailto:[email protected]] Sent: Sunday, March 11, 2012 5:32 PM
To: [email protected]
Subject: Duplicating an existing link annotation

Hi all,

I'm trying to duplicate an existing link annotation (PDAnnotationLink) from
one page to others. I'm using this code:

private static PDAnnotationLink duplicateLink(PDAnnotationLink link,
PDPage page) {
       PDAnnotationLink newLink = new PDAnnotationLink();
       newLink.setAction(link.getAction());
       newLink.setColour(link.getColour());
       newLink.setRectangle(link.getRectangle());
       newLink.setAppearance(link.getAppearance());
       newLink.setAppearanceStream(link.getAppearanceStream());
       newLink.setHighlightMode(link.getHighlightMode());
       newLink.setAnnotationFlags(link.getAnnotationFlags());
       newLink.setBorderStyle(link.getBorderStyle());
       newLink.setPage(page);
       return newLink;
   }

This works when I run the tool on a file I've created and added some links to. HOWEVER, if I then run the result file through the same code, the
following Exception is thrown:
Exception in thread "main" java.lang.ClassCastException:
org.apache.pdfbox.cos.COSObject cannot be cast to
org.apache.pdfbox.cos.COSDictionary
   at
org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationLink.getBorderStyle(PDAnnotationLink.java:131)

Since this is a RunTimeException I can't even catch it and my application
fails... Any help with this will be appreciated.
Am I creating the new link in an incorrect way?

Thanks in advance, Gilad.
____________________________________
Disclaimer: Everything in this email and its attachments relating to the official business of the Polytechnic of Namibia is proprietary to the Polytechnic of Namibia. If the email is used other than for official business of the Polytechnic of Namibia or the views and opinions expressed in the email are not authorised by the Polytechnic of Namibia, the views and opinions expressed are those of the individual sending the email.

The content of this email is confidential, legally privileged and protected by 
law. The person addressed in the email is the sole authorised recipient. Please 
notify the sender immediately if this email and its attachments have 
unintentionally reached you; do not read, copy, disseminate or use the content 
in any way and delete the email and any copies of it.

Whilst all reasonable precautions are taken to ensure the accuracy and integrity of the information, and that this email and its attachments are free from any virus, the Polytechnic of Namibia accepts no liability however arising or responsibility whatsoever in this regard, and in keeping with good computing practice, the scanning of files and attachments is advised.

Reply via email to