IText 7 Link Border Showing

2019-09-20 14:27发布

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.

标签: itext7
2条回答
小情绪 Triste *
2楼-- · 2019-09-20 14:57

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

查看更多
家丑人穷心不美
3楼-- · 2019-09-20 15:08

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

查看更多
登录 后发表回答