【问题标题】:How can I linkify an email address with the iTextSharp Anchor class?如何将电子邮件地址与 iTextSharp Anchor 类链接?
【发布时间】:2015-06-19 09:26:43
【问题描述】:

我有这个代码:

Font LinkFont = FontFactory.GetFont(FontFactory.COURIER, 9, iTextSharp.text.Font.UNDERLINE, BaseColor.BLUE);
Anchor anchor = new Anchor("Adobe Reader", LinkFont);
anchor.Reference = "http://www.adobe.com";

...非常适合链接到网站;但要调用电子邮件客户端,则:

Anchor anchorEmail = new Anchor("Email the Boss", LinkFont);
anchorEmail.Reference = "mailto://bspringsteen@songwritinggenius.art";

...没有。我错过了什么,使用了错误的类,还是什么?

更新

这行得通:

Anchor anchorFinPol = new Anchor("finnishCarpenters@helsinki.org", LinkFont);
anchorFinPol.Reference = "mailto://finnishCarpenters@helsinki.org";

...但这不是:

Anchor anchorCCO = new Anchor("Danish Danishes", LinkFont);
anchor.Reference = "mailto://danishes@copenhagen.edu"; 

【问题讨论】:

    标签: reference itextsharp anchor href mailto


    【解决方案1】:

    URI 中的// 用于具有httpftp 等权限的协议。对于代表电子邮件地址的 URI,您应该省略它们:

    var anchor = new Anchor("Example", LinkFont);
    anchor.Reference = "mailto:person@example.com";
    

    此外,有时 PDF 渲染器会自动将看起来像链接的内容自动转换为实际链接。当实际文本是电子邮件地址时,您所说的示例可能是案例。这对消费者来说很方便,但对作者来说也很危险,因为你通常不能保证每个人都会使用什么渲染器。

    【讨论】:

    • 很好,我没有时间深入研究这个问题,但我真的忽略了//。我需要一些时间才能发现问题。
    猜你喜欢
    • 2013-08-03
    • 2011-10-01
    • 1970-01-01
    • 2016-03-20
    • 2013-11-25
    • 1970-01-01
    • 2011-08-11
    • 2011-05-20
    相关资源
    最近更新 更多