Como: Adicionar marcas inteligentes em documentos do Word
Você pode adicionar marcas inteligentes para documentos do Word de Microsoft Office para reconhecer o texto e fornecer ao usuário acesso às ações que estão relacionadas aos termos reconhecidos. O código que você escreve para criar e configurar uma marca inteligente é o mesmo para os projetos de nível de aplicativo e de documento, mas existem algumas diferenças na maneira como que você associar uma marca inteligente documentos. As marcas inteligentes também têm um escopo diferente em projetos de nível de aplicativo e de documento.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para Word 2007. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Este tópico descreve as seguintes tarefas:
Adicionando uma marca inteligente usando uma personalização em nível de documento
Adicionando uma marca inteligente usando-se um suplemento em nível de aplicativo
Para executar uma marca inteligente, os usuários finais devem ter marcas inteligentes ativadas no Word ou Excel. For more information, see Como: Ativar marcas inteligentes no Word e Excel.
Adicionando uma marca inteligente usando uma personalização em nível de documento
Marcas inteligentes no nível do documento personalizações são reconhecidas apenas no documento que está associado com a personalização.
Para adicionar uma marca inteligente usando uma personalização em nível de documento
Criar um SmartTag object e configurar esse objeto para definir o comportamento da marca inteligente:
Para especificar o texto que você deseja reconhecer, use o Terms ou Expressions Propriedades.
Para definir as ações que os usuários podem clicar na marca inteligente, adicione um ou mais Action objetos para o Actions propriedade.
For more information, see Arquitetura de marcas inteligentes.
Adicionar o SmartTag para o VstoSmartTags propriedade da ThisDocument classe.
O exemplo de código a seguir cria uma marca inteligente que reconhece as palavras term e recognize. Quando o usuário clica na marca inteligente, ele exibe as posições dos caracteres inicial e final da palavra reconhecida. Para executar esse código, adicione o código para o ThisDocument de classe e chamar o AddSmartTag método a partir do ThisDocument_Startup manipulador de eventos.
Observação |
---|
O exemplo a seguir funciona em projetos de destino .NET Framework 4. Para usar este exemplo em projetos de destino.NET Framework 3.5, consulte os comentários no código. |
Private WithEvents displayAddress As Microsoft.Office.Tools.Word.Action
Private Sub AddSmartTag()
' Create the smart tag for .NET Framework 4 projects.
Dim smartTagDemo As Microsoft.Office.Tools.Word.SmartTag = Globals.Factory.CreateSmartTag(
"www.microsoft.com/Demo#DemoSmartTag",
"Demonstration Smart Tag")
' For .NET Framework 3.5 projects, use the following code to create the smart tag.
' Dim smartTagDemo As New _
' Microsoft.Office.Tools.Word.SmartTag( _
' "www.microsoft.com/Demo#DemoSmartTag", _
' "Demonstration Smart Tag")
' Specify the terms to recognize.
smartTagDemo.Terms.Add("term")
smartTagDemo.Terms.Add("recognize")
' Create the action for .NET Framework 4 projects.
displayAddress = Globals.Factory.CreateAction("To be replaced")
' For .NET Framework 3.5 projects, use the following code to create the action.
' displayAddress = New Microsoft.Office.Tools.Word.Action("To be replaced")
' Add the action to the smart tag.
smartTagDemo.Actions = New Microsoft.Office.Tools.Word.Action() { _
displayAddress}
' Add the smart tag.
Me.VstoSmartTags.Add(smartTagDemo)
End Sub
Private Sub DisplayAddress_BeforeCaptionShow(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
Handles displayAddress.BeforeCaptionShow
Dim clickedAction As Microsoft.Office.Tools.Word.Action = _
TryCast(sender, Microsoft.Office.Tools.Word.Action)
If clickedAction IsNot Nothing Then
clickedAction.Caption = "Display the location of " & e.Text
End If
End Sub
Private Sub DisplayAddress_Click(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
Handles displayAddress.Click
Dim termStart As Integer = e.Range.Start
Dim termEnd As Integer = e.Range.End
MsgBox("The recognized text '" & e.Text & _
"' begins at position " & termStart & _
" and ends at position " & termEnd)
End Sub
private Microsoft.Office.Tools.Word.Action displayAddress;
private void AddSmartTag()
{
// Create the smart tag for .NET Framework 4 projects.
Microsoft.Office.Tools.Word.SmartTag smartTagDemo =
Globals.Factory.CreateSmartTag(
"www.microsoft.com/Demo#DemoSmartTag",
"Demonstration Smart Tag");
// For .NET Framework 3.5 projects, use the following code to create the smart tag.
// Microsoft.Office.Tools.Word.SmartTag smartTagDemo =
// new Microsoft.Office.Tools.Word.SmartTag(
// "www.microsoft.com/Demo#DemoSmartTag",
// "Demonstration Smart Tag");
// Specify the terms to recognize.
smartTagDemo.Terms.Add("term");
smartTagDemo.Terms.Add("recognize");
// Create the action for .NET Framework 4 projects.
displayAddress = Globals.Factory.CreateAction("To be replaced");
// For .NET Framework 3.5 projects, use the following code to create the action.
// displayAddress = new Microsoft.Office.Tools.Word.Action("To be replaced");
// Add the action to the smart tag.
smartTagDemo.Actions = new Microsoft.Office.Tools.Word.Action[] {
displayAddress };
// Add the smart tag.
this.VstoSmartTags.Add(smartTagDemo);
displayAddress.BeforeCaptionShow += new
Microsoft.Office.Tools.Word.BeforeCaptionShowEventHandler(
displayAddress_BeforeCaptionShow);
displayAddress.Click += new
Microsoft.Office.Tools.Word.ActionClickEventHandler(
displayAddress_Click);
}
void displayAddress_BeforeCaptionShow(object sender,
Microsoft.Office.Tools.Word.ActionEventArgs e)
{
Microsoft.Office.Tools.Word.Action clickedAction =
sender as Microsoft.Office.Tools.Word.Action;
if (clickedAction != null)
{
clickedAction.Caption = "Display the location of " +
e.Text;
}
}
void displayAddress_Click(object sender,
Microsoft.Office.Tools.Word.ActionEventArgs e)
{
int termStart = e.Range.Start;
int termEnd = e.Range.End;
System.Windows.Forms.MessageBox.Show("The recognized text '" + e.Text +
"' begins at position " + termStart.ToString() +
" and ends at position " + termEnd.ToString());
}
Adicionando uma marca inteligente usando-se um suplemento em nível de aplicativo
Quando você adiciona uma marca inteligente usando um suplemento em nível de aplicativo, você pode especificar se deseja fazer com que a marca inteligente funciona apenas em um documento específico, ou em todos os documentos abertos (também chamado de um marca inteligente de nível de aplicativo).
Para adicionar uma marca inteligente a um documento específico
Criar um SmartTag object e configurar esse objeto para definir o comportamento da marca inteligente:
Para especificar o texto que você deseja reconhecer, use o Terms ou Expressions Propriedades.
Para definir as ações que os usuários podem clicar na marca inteligente, adicione um ou mais Action objetos para o Actions propriedade.
For more information, see Arquitetura de marcas inteligentes.
Para criar um Microsoft.Office.Tools.Word.Document o item de host para o documento que irá hospedar a marca inteligente, use o GetVstoObject método. Para obter mais informações sobre como criar itens de host, consulte Estendendo os documentos do Word e pastas de trabalho do Excel em suplementos de nível de aplicativo em tempo de execução.
Adicionar o SmartTag para o VstoSmartTags propriedade da Microsoft.Office.Tools.Word.Document.
O exemplo de código a seguir cria uma marca inteligente no documento ativo que reconhece as palavras term e recognize. Quando o usuário clica na marca inteligente, ele exibe as posições dos caracteres inicial e final da palavra reconhecida. Para executar esse código, adicione o código para o ThisAddIn da classe, chamada a AddSmartTagToDocument método a partir do ThisAddIn_Startup manipulador de eventos e passar um Microsoft.Office.Interop.Word.Document para AddSmartTagToDocument.
Observação |
---|
O exemplo a seguir funciona em projetos de destino .NET Framework 4. Para usar este exemplo em projetos de destino.NET Framework 3.5, consulte os comentários no código. |
Private WithEvents displayAddress As Microsoft.Office.Tools.Word.Action
Private Sub AddSmartTagToDocument(ByVal document As Word.Document)
' Create a smart tag for .NET Framework 3.5 projects.
' Dim smartTagDemo As New _
' Microsoft.Office.Tools.Word.SmartTag( _
' "www.microsoft.com/Demo#DemoSmartTag", _
' "Demonstration Smart Tag")
' Create a smart tag for .NET Framework 4 projects.
Dim smartTagDemo As SmartTag = Globals.Factory.CreateSmartTag(
"www.microsoft.com/Demo#DemoSmartTag",
"Demonstration Smart Tag")
' Specify the terms to recognize.
smartTagDemo.Terms.Add("term")
smartTagDemo.Terms.Add("recognize")
' Create the action for .NET Framework 3.5 projects.
' displayAddress = New Microsoft.Office.Tools.Word.Action("To be replaced")
' Create the action for .NET Framework 4 projects.
displayAddress = Globals.Factory.CreateAction("To be replaced")
' Add the action to the smart tag.
smartTagDemo.Actions = New Microsoft.Office.Tools.Word.Action() { _
displayAddress}
' Get a Document host item for .NET Framework 3.5
' Dim vstoDocument As Microsoft.Office.Tools.Word.Document = _
' document.GetVstoObject()
' Get a Document host item for .NET Framework 4
Dim vstoDocument As Microsoft.Office.Tools.Word.Document = _
Globals.Factory.GetVstoObject(document)
' Add the smart tag to the document.
vstoDocument.VstoSmartTags.Add(smartTagDemo)
End Sub
Private Sub DisplayAddress_BeforeCaptionShow(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
Handles displayAddress.BeforeCaptionShow
Dim clickedAction As Microsoft.Office.Tools.Word.Action = _
TryCast(sender, Microsoft.Office.Tools.Word.Action)
If clickedAction IsNot Nothing Then
clickedAction.Caption = "Display the location of " & e.Text
End If
End Sub
Private Sub DisplayAddress_Click(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
Handles displayAddress.Click
Dim termStart As Integer = e.Range.Start
Dim termEnd As Integer = e.Range.End
MsgBox("The recognized text '" & e.Text & _
"' begins at position " & termStart & _
" and ends at position " & termEnd)
End Sub
private Microsoft.Office.Tools.Word.Action displayAddress;
private void AddSmartTagToDocument(Word.Document document)
{
Microsoft.Office.Tools.Word.SmartTag smartTagDemo =
// Create a smart tag for .NET Framework 3.5 projects.
// new Microsoft.Office.Tools.Word.SmartTag(
// "www.microsoft.com/Demo#DemoSmartTag",
// "Demonstration Smart Tag");
// Create a smart tag for .NET Framework 4 projects.
Globals.Factory.CreateSmartTag(
"www.microsoft.com/Demo#DemoSmartTag",
"Demonstration Smart Tag");
// Specify the terms to recognize.
smartTagDemo.Terms.Add("term");
smartTagDemo.Terms.Add("recognize");
// Create the action for .NET Framework 3.5 projects.
// displayAddress = new Microsoft.Office.Tools.Word.Action("To be replaced");
// Create the action for .NET Framework 4 projects.
displayAddress = Globals.Factory.CreateAction("To be replaced");
// Add the action to the smart tag.
smartTagDemo.Actions = new Microsoft.Office.Tools.Word.Action[] {
displayAddress };
// Get a Document host item for .NET Framework 3.5
// Microsoft.Office.Tools.Word.Document vstoDocument =
// document.GetVstoObject();
// Get a Document host item for .NET Framework 3.5
Microsoft.Office.Tools.Word.Document vstoDocument =
Globals.Factory.GetVstoObject(document);
// Add the smart tag to the document
vstoDocument.VstoSmartTags.Add(smartTagDemo);
displayAddress.BeforeCaptionShow += new
Microsoft.Office.Tools.Word.BeforeCaptionShowEventHandler(
displayAddress_BeforeCaptionShow);
displayAddress.Click += new
Microsoft.Office.Tools.Word.ActionClickEventHandler(
displayAddress_Click);
}
void displayAddress_BeforeCaptionShow(object sender,
Microsoft.Office.Tools.Word.ActionEventArgs e)
{
Microsoft.Office.Tools.Word.Action clickedAction =
sender as Microsoft.Office.Tools.Word.Action;
if (clickedAction != null)
{
clickedAction.Caption = "Display the location of " +
e.Text;
}
}
void displayAddress_Click(object sender,
Microsoft.Office.Tools.Word.ActionEventArgs e)
{
int termStart = e.Range.Start;
int termEnd = e.Range.End;
System.Windows.Forms.MessageBox.Show("The recognized text '" + e.Text +
"' begins at position " + termStart.ToString() +
" and ends at position " + termEnd.ToString());
}
Para adicionar uma marca inteligente que funciona em todos os documentos abertos
Criar um SmartTag object e configurar esse objeto para definir o comportamento da marca inteligente:
Para especificar o texto que você deseja reconhecer, use o Terms ou Expressions Propriedades.
Para definir as ações que os usuários podem clicar na marca inteligente, adicione um ou mais Action objetos para o Actions propriedade.
For more information, see Arquitetura de marcas inteligentes.
Adicionar o SmartTag para o VstoSmartTags propriedade da ThisAddIn classe.
O exemplo de código a seguir cria uma marca inteligente que reconhece as palavras term e recognize. Quando o usuário clica na marca inteligente, ele exibe as posições dos caracteres inicial e final da palavra reconhecida. Para executar esse código, adicione o código para o ThisAddIn de classe e chamar o AddSmartTag método a partir do ThisAddIn_Startup manipulador de eventos.
Observação |
---|
O exemplo a seguir funciona em projetos de destino .NET Framework 4. Para usar este exemplo em projetos de destino.NET Framework 3.5, consulte os comentários no código. |
Private WithEvents displayAddress As Microsoft.Office.Tools.Word.Action
Private Sub AddSmartTag()
' Create the smart tag for .NET Framework 4 projects.
Dim smartTagDemo As Microsoft.Office.Tools.Word.SmartTag = Globals.Factory.CreateSmartTag(
"www.microsoft.com/Demo#DemoSmartTag",
"Demonstration Smart Tag")
' For .NET Framework 3.5 projects, use the following code to create the smart tag.
' Dim smartTagDemo As New _
' Microsoft.Office.Tools.Word.SmartTag( _
' "www.microsoft.com/Demo#DemoSmartTag", _
' "Demonstration Smart Tag")
' Specify the terms to recognize.
smartTagDemo.Terms.Add("term")
smartTagDemo.Terms.Add("recognize")
' Create the action for .NET Framework 4 projects.
displayAddress = Globals.Factory.CreateAction("To be replaced")
' For .NET Framework 3.5 projects, use the following code to create the action.
' displayAddress = New Microsoft.Office.Tools.Word.Action("To be replaced")
' Add the action to the smart tag.
smartTagDemo.Actions = New Microsoft.Office.Tools.Word.Action() { _
displayAddress}
' Add the smart tag.
Me.VstoSmartTags.Add(smartTagDemo)
End Sub
Private Sub DisplayAddress_BeforeCaptionShow(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
Handles displayAddress.BeforeCaptionShow
Dim clickedAction As Microsoft.Office.Tools.Word.Action = _
TryCast(sender, Microsoft.Office.Tools.Word.Action)
If clickedAction IsNot Nothing Then
clickedAction.Caption = "Display the location of " & e.Text
End If
End Sub
Private Sub DisplayAddress_Click(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
Handles displayAddress.Click
Dim termStart As Integer = e.Range.Start
Dim termEnd As Integer = e.Range.End
MsgBox("The recognized text '" & e.Text & _
"' begins at position " & termStart & _
" and ends at position " & termEnd)
End Sub
private Microsoft.Office.Tools.Word.Action displayAddress;
private void AddSmartTag()
{
// Create the smart tag for .NET Framework 4 projects.
Microsoft.Office.Tools.Word.SmartTag smartTagDemo =
Globals.Factory.CreateSmartTag(
"www.microsoft.com/Demo#DemoSmartTag",
"Demonstration Smart Tag");
// For .NET Framework 3.5 projects, use the following code to create the smart tag.
// Microsoft.Office.Tools.Word.SmartTag smartTagDemo =
// new Microsoft.Office.Tools.Word.SmartTag(
// "www.microsoft.com/Demo#DemoSmartTag",
// "Demonstration Smart Tag");
// Specify the terms to recognize.
smartTagDemo.Terms.Add("term");
smartTagDemo.Terms.Add("recognize");
// Create the action for .NET Framework 4 projects.
displayAddress = Globals.Factory.CreateAction("To be replaced");
// For .NET Framework 3.5 projects, use the following code to create the action.
// displayAddress = new Microsoft.Office.Tools.Word.Action("To be replaced");
// Add the action to the smart tag.
smartTagDemo.Actions = new Microsoft.Office.Tools.Word.Action[] {
displayAddress };
// Add the smart tag.
this.VstoSmartTags.Add(smartTagDemo);
displayAddress.BeforeCaptionShow += new
Microsoft.Office.Tools.Word.BeforeCaptionShowEventHandler(
displayAddress_BeforeCaptionShow);
displayAddress.Click += new
Microsoft.Office.Tools.Word.ActionClickEventHandler(
displayAddress_Click);
}
void displayAddress_BeforeCaptionShow(object sender,
Microsoft.Office.Tools.Word.ActionEventArgs e)
{
Microsoft.Office.Tools.Word.Action clickedAction =
sender as Microsoft.Office.Tools.Word.Action;
if (clickedAction != null)
{
clickedAction.Caption = "Display the location of " +
e.Text;
}
}
void displayAddress_Click(object sender,
Microsoft.Office.Tools.Word.ActionEventArgs e)
{
int termStart = e.Range.Start;
int termEnd = e.Range.End;
System.Windows.Forms.MessageBox.Show("The recognized text '" + e.Text +
"' begins at position " + termStart.ToString() +
" and ends at position " + termEnd.ToString());
}
Segurança
Você deve ativar marcas inteligentes no Word. Por padrão, eles não estão ativados. For more information, see Como: Ativar marcas inteligentes no Word e Excel.
Consulte também
Tarefas
Como: Ativar marcas inteligentes no Word e Excel
Como: Adicionar marcas inteligentes para pastas de trabalho do Excel
Como: Criar marcas inteligentes com reconhecedores de personalizado no Word e.NET Framework 3.5
Como: Criar marcas inteligentes com reconhecedores de personalizadas no Excel e.NET Framework 3.5
Conceitos
Arquitetura de marcas inteligentes