Incrustar y automatizar Microsoft Word desde Visual Basic
Los desarrolladores también pueden generar mediante programación el documento Word utilizando código VB y luego incrustar el documento MS Word en un formulario. No como otros componentes de lectura y escritura de Word, Edraw office viewer component trabaja con todas las características del programa Microsoft Word. Casi todas las tareas que realizamos en Word se pueden hacer mediante programación, como insertar tablas de contenido, vincular documentos, combinar correspondencia, insertar documentos, incrustar documentos, insertar imágenes, marcas de agua, etc.
Si no estás familiarizado con la incrustación del componente Edraw office en Visual Bisic, puedes consultar el siguiente artículo en primer lugar.
Incrustación de MS Word en VB.NET y automatización de Word
Incrustar MS Excel en VB 6 y hacer la automatización de Excel
Para empezar, el primer paso es incluir las referencias a objetos Word en la Solución. Para ello, haz clic con el botón derecho del ratón en la carpeta de referencia del explorador de soluciones del proyecto y selecciona Añadir referencia.
Navega a través de los objetos COM disponibles y selecciona Microsoft Office 11.0 Object Library & Microsoft Word 11.0 Object Library. Este Word DLL tiene todos los métodos que hacemos para realizar la automatización de palabras.
Añadir el componente Edraw Office Viewer en un formulario de Visual Basic.
Automatización de Microsoft Word en Visual Basic
El punto clave es cómo construir la relación entre el componente de oficina Edraw y el módulo de objetos de Microsoft Word.
De hecho, el componente proporciona dos métodos que devuelven la interfaz Aplicación y Documento del documento MS Word abierto. Los desarrolladores pueden añadir el siguiente Código Clave en el evento DocumentOpened del componente.
CÓDIGO CLAVE
Dim appWord As Word.Application
Set appWord = EDOffice1.GetApplication()
Dim oWordDoc As Word.Document
Set oWordDoc = EDOffice1.ActiveDocument()
Entonces los desarrolladores pueden hacer la automatización de la palabra sin ninguna diferencia.
Por ejemplo:
Formato de texto
Todas las opciones de formato de texto disponibles en la aplicación Word también pueden reproducirse mediante automatización.
oWordDoc.Selection.Font.Bold = 1
oWordDoc.Selection.Font.Color = Word.WdColor.wdColorAqua
oWordDoc.Selection.Font.Italic = 1
oWordDoc.Selection.Font.Underline = Word.WdUnderline.wdUnderlineDashHeavy
Inserción de imágenes en la cabecera del documento
oWord.ActiveWindow.ActivePane.View.SeekView = Word.WdSeekView.wdSeekCurrentPageHeader
Dim logoCustom As Word.Shape = Nothing
Dim logoPath As String = "C:\Document and Settings\MyLogo.jpg"
logoCustom = oWord.Selection.HeaderFooter.Shapes.AddPicture(logoPath, oFalse, oTrue, oMissing, oMissing, oMissing, oMissing, oMissing)
logoCustom.[Select](oMissing)
logoCustom.Name = "CustomLogo"
logoCustom.Left = CSng(Word.WdShapePosition.wdShapeLeft)
oWordDoc.ActiveWindow.ActivePane.View.SeekView = Word.WdSeekView.wdSeekMainDocument
Incluir números de página en el pie de página
La inclusión de números de página autogenerados en el pie de página es otra función útil que puede simularse en el código.
oWordDoc.ActiveWindow.ActivePane.View.SeekView = Word.WdSeekView.wdSeekCurrentPageFooter
oWordDoc.Selection.TypeParagraph()
Dim docNumber As String = "1"
Dim revisionNumber As String = "0"
oWordDoc.Selection.Paragraphs.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft
oWordDoc.ActiveWindow.Selection.Font.Name = "Arial"
oWordDoc.ActiveWindow.Selection.Font.Size = 8
oWordDoc.ActiveWindow.Selection.TypeText("Document #: " + docNumber + " - Revision #: " + revisionNumber)
oWordDoc.ActiveWindow.Selection.TypeText("" & Chr(9) & "")
oWordDoc.ActiveWindow.Selection.TypeText("" & Chr(9) & "")
oWordDoc.ActiveWindow.Selection.TypeText("Page ")
Dim CurrentPage As Object = Word.WdFieldType.wdFieldPage
oWordDoc.ActiveWindow.Selection.Fields.Add(oWord.Selection.Range, CurrentPage, oMissing, oMissing)
oWordDoc.ActiveWindow.Selection.TypeText(" of ")
Dim TotalPages As Object = Word.WdFieldType.wdFieldNumPages
oWordDoc.ActiveWindow.Selection.Fields.Add(oWord.Selection.Range, TotalPages, oMissing, oMissing)
oWordDoc.ActiveWindow.ActivePane.View.SeekView = Word.WdSeekView.wdSeekMainDocument
Insertar texto en el centro del documento como marca de agua
Dim logoWatermark As Word.Shape = Nothing
logoWatermark = oWordDoc.Selection.HeaderFooter.Shapes.AddTextEffect(Microsoft.Office.Core.MsoPresetTextEffect.msoTextEffect1, "Enter The Text Here", "Arial", CSng(60), Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoFalse, 0, 0, oMissing)
logoWatermark.[Select](oMissing)
logoWatermark.Fill.Visible = Microsoft.Office.Core.MsoTriState.msoTrue
logoWatermark.Line.Visible = Microsoft.Office.Core.MsoTriState.msoFalse
logoWatermark.Fill.Solid()
logoWatermark.Fill.ForeColor.RGB = DirectCast(Word.WdColor.wdColorGray30, Int32)
logoWatermark.RelativeHorizontalPosition = Word.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionMargin
logoWatermark.RelativeVerticalPosition = Word.WdRelativeVerticalPosition.wdRelativeVerticalPositionMargin
logoWatermark.Left = CSng(Word.WdShapePosition.wdShapeCenter)
logoWatermark.Top = CSng(Word.WdShapePosition.wdShapeCenter)
logoWatermark.Height = oWordDoc.InchesToPoints(2.4F)
logoWatermark.Width = oWordDoc.InchesToPoints(6F)
Inserción del índice
Dim oBookmarkTOC As Object = "Bookmark_TOC"
Dim rngTOC As Word.Range = oWordDoc.Bookmarks.get_Item(oBookmarkTOC).Range
rngTOC.[Select]()
Dim oUpperHeadingLevel As Object = "1"
Dim oLowerHeadingLevel As Object = "3"
Dim oTOCTableID As Object = "TableOfContents"
oWordDoc.TablesOfContents.Add(rngTOC, oTrue, oUpperHeadingLevel, oLowerHeadingLevel, oMissing, oTOCTableID, oTrue, oTrue, oMissing, oTrue, oTrue, oTrue)
Actualización del índice
oWordDoc.TablesOfContents(1).Update()
oWordDoc.TablesOfContents(1).UpdatePageNumbers()
Incrustación de MS Office en un programa ASP.NET
Una forma sencilla de incrustar Excel en una página web
Desactiva el botón de la cinta de Office
Mostrar/Ocultar la barra de menús de Office
Descarga gratuita de Office Viewer Component y visualización de proyectos de ejemplo