如何禁用 mailto:单击文件名之类的电子邮件时?
How to disable mailto: when clicking an Email like filename?
考虑这个简单的代码块,它使用指向用户文件系统中文件的 Web 超链接重现简单的文本。
Document doc = new Document();
Page page1 = doc.Pages.Add();
TextFragment textFragment = new TextFragment();
TextSegment textSegment = new TextSegment("foo@boo.net");
textSegment.Hyperlink = new Aspose.Pdf.WebHyperlink("Images/foo@boo.net");
textFragment.Segments.Add(textSegment);
page1.Paragraphs.Add(textFragment);
doc.Save(dataDir);
文件 name 是 foo@boo.net
因此 PDF 将其识别为电子邮件并自动添加 mailto:
前缀,因此无需打开文件(使用某些默认程序)正在使用 Outlook 打开。
这个问题之后是我关于这个问题的,在尝试使用 new Aspose.Pdf.FileHyperlink("Images/foo@boo.net");
等多次尝试之后,但它不会打开任何文件,无论其名称是什么。
是否可以添加带有有效邮件文本的 TextSegment
,这样 PDF reader 就不会添加 mailto:
前缀?
例如(在Chrome中测试):
通过使用 zero-width-whitespace
(definition) 转义文本解决,例如:
internal static string SafeEscapeMailtoPrefix(this string value)
{
if (string.IsNullOrEmpty(value))
return value;
return value.Replace("@", "\u200B@");
}
所以 TextSegment 会是这样的:
TextSegment textSegment = newTextSegment("foo@boo.net".SafeEscapeMailtoPrefix());
考虑这个简单的代码块,它使用指向用户文件系统中文件的 Web 超链接重现简单的文本。
Document doc = new Document();
Page page1 = doc.Pages.Add();
TextFragment textFragment = new TextFragment();
TextSegment textSegment = new TextSegment("foo@boo.net");
textSegment.Hyperlink = new Aspose.Pdf.WebHyperlink("Images/foo@boo.net");
textFragment.Segments.Add(textSegment);
page1.Paragraphs.Add(textFragment);
doc.Save(dataDir);
文件 name 是 foo@boo.net
因此 PDF 将其识别为电子邮件并自动添加 mailto:
前缀,因此无需打开文件(使用某些默认程序)正在使用 Outlook 打开。
这个问题之后是我关于这个问题的new Aspose.Pdf.FileHyperlink("Images/foo@boo.net");
等多次尝试之后,但它不会打开任何文件,无论其名称是什么。
是否可以添加带有有效邮件文本的 TextSegment
,这样 PDF reader 就不会添加 mailto:
前缀?
例如(在Chrome中测试):
通过使用 zero-width-whitespace
(definition) 转义文本解决,例如:
internal static string SafeEscapeMailtoPrefix(this string value)
{
if (string.IsNullOrEmpty(value))
return value;
return value.Replace("@", "\u200B@");
}
所以 TextSegment 会是这样的:
TextSegment textSegment = newTextSegment("foo@boo.net".SafeEscapeMailtoPrefix());