2017-09-11 1 views
2

Mon programme lie une position dans un fichier PDF à une autre page dans le même fichier. Vous pouvez donc cliquer sur une position définie dans le fichier et vous serez lié à une autre page.Java créer un lien vers la page en PDF avec PDFBox

J'utilise un PDRectangle pour définir la position. Malheureusement, le rectangle est visible dans le document. Je veux créer le lien sans bordure visible.

Mon code:

PDActionGoTo action = new PDActionGoTo(); 
    action.setDestination(destination); 

    PDAnnotationLink annotationLink = new PDAnnotationLink(); 
    annotationLink.setAction(action); 

    PDRectangle position = new PDRectangle(); 
    position.setLowerLeftX(bookmarkLinkPositionEntry.getLowerLeftX()); 
    position.setLowerLeftY(bookmarkLinkPositionEntry.getLowerLeftY()); 
    position.setUpperRightX(bookmarkLinkPositionEntry.getUpperRightX()); 
    position.setUpperRightY(bookmarkLinkPositionEntry.getUpperRightY()); 

    annotationLink.setRectangle(position); 

    destinationPDF.getPage(0).getAnnotations().add(annotationLink); 

j'ai essayé d'utiliser annotationLink.setHidden(true); et annotationLink.setNoView(true);. La documentation dit simplement "Définir le drapeau caché". et "Définir le drapeau noView". et je ne sais pas ce qui s'est réellement passé là-bas.

Comment puis-je changer la visibilité de mon rectangle ou supprimer complètement la frontière?

Répondre

2

Vous aurez besoin de définir le style de la bordure:

PDBorderStyleDictionary borderULine = new PDBorderStyleDictionary(); 
borderULine.setStyle(PDBorderStyleDictionary.STYLE_UNDERLINE); 
borderULine.setWidth(0); 
annotationLink.setBorderStyle(borderULine); 

Plus sur ce sujet dans le AddAnnotations.java example dans le téléchargement du code source.