IText 7 Link Border Showing

2019-09-20 14:17发布

问题:

Using Itext 7 for generating pdf and found Anchor tag is deprecated hence used Link.

Link projectNameLink = new Link("**Test**", PdfAction.createURI("https://www.google.com"));       
projectNameLink.setFontColor(Color.BLUE)
               .setBorder(Border.NO_BORDER);
Paragraph footerContent = new Paragraph().add(projectNameLink).setBorder(Border.NO_BORDER);

Added this to paragraph. The document in Acrobat Reader shows border around Test. Same thing I see in the below Url . Is it a bug ? Or am missing something. How to remove the border ?

Try to download the file

And open in Acrobat Reader on can see borders along the Link Text.

回答1:

The default behaviour for iText is to add the border. You can however apply some style to these actions.

PdfAnnotation la1 = new PdfLinkAnnotation(new Rectangle(0, 0, 0, 0))
        .setHighlightMode(PdfAnnotation.HIGHLIGHT_INVERT)
        .setAction(js)
        .setBorderStyle(PdfAnnotation.STYLE_UNDERLINE); // this is what you need

Have a look at http://developers.itextpdf.com/content/itext-7-building-blocks/examples/chapter-6



回答2:

I had the same problem just wanting to have no border at all, and I've found the solution:

PdfAnnotation la1 = new PdfLinkAnnotation(new Rectangle(0, 0, 0, 0))
    .setHighlightMode(PdfAnnotation.HIGHLIGHT_NONE)
    .setAction(js)
    .setBorder(new PdfArray(new int[]{0,0,0}))

I found out the solution reading the javadoc: http://itextsupport.com/apidocs/itext7/latest/com/itextpdf/kernel/pdf/annot/PdfAnnotation.html#getBorder--



标签: itext7