首页 >> 大全

Word控件Spire.Doc 【超链接】教程(1):如何在C#/VB

2023-10-11 大全 28 作者:考证青年

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Word情况下,轻松快捷高效地创建、编辑、转换和打印 Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转换和打印Word/PDF/Excel等格式文件处理,小巧便捷。

Spire.Doc for.NET 最新下载(qun:)

Word 文档中的超链接使读者能够从其位置跳转到文档中的不同位置,或者跳转到不同的文件或网站,或者跳转到新的电子邮件消息。超链接使读者可以快速轻松地导航到相关信息。本文演示了如何使用Spire.Doc for .NET在 C# 和 VB.NET 中向文本或图像添加超链接。

步骤一:为 .NET 安装 Spire.Doc

首先,您需要将 Spire.Doc for.NET 包中包含的 DLL 文件添加为 .NET 项目中的引用。

PM> Install-Package Spire.Doc

步骤二:向 Word 添加段落时插入超链接

Spire.Doc 提供了.()方法,用于将 Web 链接、电子邮件链接、文件链接或书签链接添加到段落中的一段文本或图像。以下是详细步骤。

【C#】

using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;namespace InsertHyperlinks
{
class Program
{
static void Main(string[] args)
{
//Create a Word document
Document doc = new Document();//Add a section
Section section = doc.AddSection();//Add a paragraph
Paragraph paragraph = section.AddParagraph();
paragraph.AppendHyperlink("https://www-iceblue.com/", "Home Page", HyperlinkType.WebLink);//Append line breaks
paragraph.AppendBreak(BreakType.LineBreak);
paragraph.AppendBreak(BreakType.LineBreak);//Add an email link
paragraph.AppendHyperlink("mailto:support@e-iceblue.com", "Mail Us", HyperlinkType.EMailLink);//Append line breaks
paragraph.AppendBreak(BreakType.LineBreak);
paragraph.AppendBreak(BreakType.LineBreak);//Add a file link
string filePath = @"C:\Users\Administrator\Desktop\report.xlsx";
paragraph.AppendHyperlink(filePath, "Click to open the report", HyperlinkType.FileLink);//Append line breaks
paragraph.AppendBreak(BreakType.LineBreak);
paragraph.AppendBreak(BreakType.LineBreak);//Add another section and create a bookmark
Section section2 = doc.AddSection();
Paragraph bookmarkParagrapg = section2.AddParagraph();
bookmarkParagrapg.AppendText("Here is a bookmark");
BookmarkStart start = bookmarkParagrapg.AppendBookmarkStart("myBookmark");
bookmarkParagrapg.Items.Insert(0, start);
bookmarkParagrapg.AppendBookmarkEnd("myBookmark");//Link to the bookmark
paragraph.AppendHyperlink("myBookmark", "Jump to a location inside this document", HyperlinkType.Bookmark);//Append line breaks
paragraph.AppendBreak(BreakType.LineBreak);
paragraph.AppendBreak(BreakType.LineBreak);//Add an image link
Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\logo.png");
Spire.Doc.Fields.DocPicture picture = paragraph.AppendPicture(image);
paragraph.AppendHyperlink("https://docs.microsoft.com/en-us/dotnet/", picture, HyperlinkType.WebLink);//Save to file
doc.SaveToFile("InsertHyperlinks.docx", FileFormat.Docx2013);
}
}
}

【VB.NET】

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports System.DrawingNamespace InsertHyperlinks
Class Program
Shared Sub Main(ByVal args() As String)
'Create a Word document
Document doc = New Document()'Add a section
Dim section As Section = doc.AddSection()'Add a paragraph
Dim paragraph As Paragraph = section.AddParagraph()
paragraph.AppendHyperlink("https://www.e-iceblue.com/", "Home Page", HyperlinkType.WebLink)'Append line breaks
paragraph.AppendBreak(BreakType.LineBreak)
paragraph.AppendBreak(BreakType.LineBreak)'Add an email link
paragraph.AppendHyperlink("mailto:support@e-iceblue.com", "Mail Us", HyperlinkType.EMailLink)'Append line breaks
paragraph.AppendBreak(BreakType.LineBreak)
paragraph.AppendBreak(BreakType.LineBreak)'Add a file link
Dim filePath As String = "C:\Users\Administrator\Desktop\report.xlsx"
paragraph.AppendHyperlink(filePath, "Click to open the report", HyperlinkType.FileLink)'Append line breaks
paragraph.AppendBreak(BreakType.LineBreak)
paragraph.AppendBreak(BreakType.LineBreak)'Add another section and create a bookmark
Dim section2 As Section = doc.AddSection()
Dim bookmarkParagrapg As Paragraph = section2.AddParagraph()
bookmarkParagrapg.AppendText("Here is a bookmark")
Dim start As BookmarkStart = bookmarkParagrapg.AppendBookmarkStart("myBookmark")
bookmarkParagrapg.Items.Insert(0, start)
bookmarkParagrapg.AppendBookmarkEnd("myBookmark")'Link to the bookmark
paragraph.AppendHyperlink("myBookmark", "Jump to a location inside this document", HyperlinkType.Bookmark)'Append line breaks
paragraph.AppendBreak(BreakType.LineBreak)
paragraph.AppendBreak(BreakType.LineBreak)'Add an image link
Dim image As Image = Image.FromFile("C:\Users\Administrator\Desktop\logo.png")
Dim picture As Spire.Doc.Fields.DocPicture = paragraph.AppendPicture(image)
paragraph.AppendHyperlink("https://docs.microsoft.com/en-us/dotnet/", picture, HyperlinkType.WebLink)'Save to file
doc.SaveToFile("InsertHyperlinks.docx", FileFormat.Docx2013)
System.Diagnostics.Process.Start("InsertHyperlinks.docx")
End Sub
End Class
End Namespace

_c语言教程word_链接控件

步骤三:将超链接添加到 Word 中的现有文本

将超链接添加到文档中的现有文本有点复杂。您需要先找到目标字符串,然后在段落中将其替换为超链接字段。以下是步骤。

【C#】

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using Spire.Doc.Interface;namespace AddHyperlinksToExistingText
{
class Program
{
static void Main(string[] args)
{
//Create a Document object
Document document = new Document();//Load a Word file
document.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.docx");//Find all the occurrences of the string ".NET Framework" in the document
TextSelection[] selections = document.FindAllString(".NET Framework", true, true);//Get the second occurrence
TextRange range = selections[1].GetAsOneRange();//Get its owner paragraph
Paragraph parapgraph = range.OwnerParagraph;//Get its position in the paragraph
int index = parapgraph.Items.IndexOf(range);//Remove it from the paragraph
parapgraph.Items.Remove(range);//Create a hyperlink field
Spire.Doc.Fields.Field field = new Spire.Doc.Fields.Field(document);
field.Type = Spire.Doc.FieldType.FieldHyperlink;
Hyperlink hyperlink = new Hyperlink(field);
hyperlink.Type = HyperlinkType.WebLink;
hyperlink.Uri = "https://en.wikipedia.org/wiki/.NET_Framework";
parapgraph.Items.Insert(index, field);//Insert a field mark "start" to the paragraph
IParagraphBase start = document.CreateParagraphItem(ParagraphItemType.FieldMark);
(start as FieldMark).Type = FieldMarkType.FieldSeparator;
parapgraph.Items.Insert(index + 1, start);//Insert a text range between two field marks
ITextRange textRange = new Spire.Doc.Fields.TextRange(document);
textRange.Text = ".NET Framework";
textRange.CharacterFormat.Font = range.CharacterFormat.Font;
textRange.CharacterFormat.TextColor = System.Drawing.Color.Blue;
textRange.CharacterFormat.UnderlineStyle = UnderlineStyle.Single;
parapgraph.Items.Insert(index + 2, textRange);//Insert a field mark "end" to the paragraph
IParagraphBase end = document.CreateParagraphItem(ParagraphItemType.FieldMark);
(end as FieldMark).Type = FieldMarkType.FieldEnd;
parapgraph.Items.Insert(index + 3, end);//Save to file
document.SaveToFile("AddHyperlink.docx", Spire.Doc.FileFormat.Docx);
}
}
}

【VB.NET】

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports Spire.Doc.InterfaceNamespace AddHyperlinksToExistingText
Class Program
Shared Sub Main(ByVal args() As String)
'Create a Document object
Dim document As Document = New Document()'Load a Word file
document.LoadFromFile("C:\Users\Administrator\Desktop\sample.docx")'Find all the occurrences of the string ".NET Framework" in the document
Dim selections() As TextSelection = document.FindAllString(".NET Framework",True,True)'Get the second occurrence
Dim range As TextRange = selections(1).GetAsOneRange()'Get its owner paragraph
Dim parapgraph As Paragraph = range.OwnerParagraph'Get its position in the paragraph
Dim index As Integer = parapgraph.Items.IndexOf(range)'Remove it from the paragraph
parapgraph.Items.Remove(range)'Create a hyperlink field
Dim field As Spire.Doc.Fields.Field = New Spire.Doc.Fields.Field(document)
field.Type = Spire.Doc.FieldType.FieldHyperlink
Dim hyperlink As Hyperlink = New Hyperlink(field)
hyperlink.Type = HyperlinkType.WebLink
hyperlink.Uri = "https://en.wikipedia.org/wiki/.NET_Framework"
parapgraph.Items.Insert(index, field)'Insert a field mark "start" to the paragraph
Dim start As IParagraphBase = document.CreateParagraphItem(ParagraphItemType.FieldMark)
(start as FieldMark).Type = FieldMarkType.FieldSeparator
parapgraph.Items.Insert(index + 1, start)'Insert a text range between two field marks
Dim textRange As ITextRange = New Spire.Doc.Fields.TextRange(document)
textRange.Text = ".NET Framework"
textRange.CharacterFormat.Font = range.CharacterFormat.Font
textRange.CharacterFormat.TextColor = System.Drawing.Color.Blue
textRange.CharacterFormat.UnderlineStyle = UnderlineStyle.Single
parapgraph.Items.Insert(index + 2, textRange)'Insert a field mark "end" to the paragraph
Dim end As IParagraphBase = document.CreateParagraphItem(ParagraphItemType.FieldMark)
(end as FieldMark).Type = FieldMarkType.FieldEnd
parapgraph.Items.Insert(index + 3, end)'Save to file
document.SaveToFile("AddHyperlink.docx", Spire.Doc.FileFormat.Docx)
End Sub
End Class
End Namespace

以上便是如何在C#/VB.NET中给Word 文档插入超链接,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,你还可以给我留言或者加入我们的官方技术交流群。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了