itex7:添加没有边框或下划线的PDF链接

时间:2018-02-20 22:58:47

标签: c# itext7

我想添加一个没有下划线或边框的文档链接。

根据文档,我预计下面的第一个示例导致链接周围没有边框。这没用,所以我发现this post我适应了第二个例子。使用这种方法,我可以用下划线替换边框,但不能摆脱两者。

var states = Ext.create('Ext.data.Store', {
    fields: ['abbr', 'name'],
    data : [
        {"abbr":"AL", "name":"Alabama"},
        {"abbr":"AK", "name":"Alaska"},
        {"abbr":"AZ", "name":"Arizona"}
    ]
});

Ext.create('Ext.form.ComboBox', {
    fieldLabel: 'Choose State',
    store: states,
    queryMode: 'local',
    valueField: 'abbr',
    renderTo: Ext.getBody(),
    // Template for the dropdown menu.
    // Note the use of "x-boundlist-item" class,
    // this is required to make the items selectable.
    tpl: Ext.create('Ext.XTemplate',
        '<tpl for=".">',
            '<div class="x-boundlist-item">{abbr} - {name}</div>',
        '</tpl>'
    ),
    // template for the content inside text field
    displayTpl: Ext.create('Ext.XTemplate',
        '<tpl for=".">',
            '{abbr} - {name}',
        '</tpl>'
    )
});

1 个答案:

答案 0 :(得分:1)

为了在第二个示例中没有边框,您需要通过PdfLinkAnnotation#SetBorder(PdfAnnotationBorder)方法而不是SetBorderStyle指定边框。

以下是您的代码片段稍加修改的示例:

PdfDocument pdfDoc = new PdfDocument(new PdfWriter("links.pdf"));
Document d = new Document(pdfDoc);


Link link = new Link("Please no borders", PdfAction.CreateURI("http://www.google.com"));
link.GetLinkAnnotation().SetBorder(new PdfAnnotationBorder(0, 0, 0));     

d.Add(new Paragraph(link));

pdfDoc.Close();

您可以在javadocs中找到有关此方法调用的更多信息:http://itextsupport.com/apidocs/itext7/latest/com/itextpdf/kernel/pdf/annot/PdfAnnotation.html#getBorder--

一些背景

默认情况下,iText不会为链接注释指定任何特定的边框属性。并且根据PDF规范,注释的默认值是有边框:

  

ISO32000-1 12.5.2“注释词典”表164 - “所有注释词典共有的条目”:

     

Border - 一个数组,指定注释边框的特征,该数组应绘制为圆角矩形。   该数组由三个数字组成,这三个数字定义水平角半径,垂直角半径和边框宽度,所有这些都是默认的用户空间单位。如果拐角半径为0,则边框具有正方形(不是圆角);如果边框宽度为0,则不绘制边框。

     

[...]

     

默认值:[0 0 1]。