วันนี้นำเสนอ การลบลายน้ำใน Microsoft Word ด้วย VB.NET (Delete WaterMark Word)  ขั้นตอนมีดังนี้

1. เตรียมเอกสาร Microsoft Word ที่มี ลายน้ำ ตัวอย่างประมาณนี้
   - ในเอกสารนี้ประกอบด้วย ลายน้ำ (WaterMark)
   - ในเอกสารนี้ประกอบด้วย ลายน้ำส่วนหัว (Header WaterMark)




2. Create New Project ดังนี้
3. Select Windows Forms Application
4. Name : Winapp_DelWaterMark
5. OK



6. Design Form1 ดังนี้
    - Textbox : text_FolderFile
    - Butoon1 : btnDel_WaterMark
    - Butoon2 : btnDel_HeaderWaterMark




7.  คลิ๊กขวาที่ โปรแจค เพื่อ Add Reference...
8.  เลือก Tab ".NET"
9.  เลือก Interop.Microsoft.Office.Interop.Word  Version 8.4.0.0
10. OK




11.  Coding ดังนี้

Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Word

Public Class Form1
 

Private Sub btnDel_WaterMark_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel_WaterMark.Click
        Dim WdApp As New Application
        Dim WdDoc As Word.Document
        Dim pathWord As String = txt_FolderFile.Text

        WdDoc = WdApp.Documents.Open(pathWord)
        WdApp.Visible = True

        Call DeleteWatermark(WdDoc, "CLEAR")

        WdDoc.Close()
        WdApp.Quit()

End Sub
 

Private Sub btnDel_HeaderWaterMark_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel_HeaderWaterMark.Click
        Dim WdApp As New Application
        Dim WdDoc As Word.Document
        Dim pathWord As String = txt_FolderFile.Text

        WdDoc = WdApp.Documents.Open(pathWord)
        WdApp.Visible = True

        Call DeleteHeaderWatermark(WdDoc)

        WdDoc.Close()
        WdApp.Quit()

End Sub

Public Sub DeleteWatermark(ByVal worddoc As Word.Document, ByVal WATERMARK_STATUS As String)

        Dim i As Integer = 0
        Dim j As Integer = 0
        Dim shpname As String = Nothing

        Dim HdFt As Microsoft.Office.Interop.Word.HeaderFooter
        Dim WordDocument As Range = worddoc.Range

        'for each header
        Dim page As Integer = WordDocument.Sections.Count
        With WordDocument
            For i = 1 To page
                For Each HdFt In .Sections(i).Headers
                    With HdFt
                        For j = HdFt.Shapes.Count To 1 Step -1

                            ' Delete WaterMart
                            If WATERMARK_STATUS = "CLEAR" Then
                                .Shapes(j).Delete()
                            End If

                        Next j
                    End With
                Next
            Next
        End With

 

End Sub
 

Public Sub DeleteHeaderWatermark(ByVal worddoc As Word.Document)
        Dim WordDocument As Range = worddoc.Range
        Dim page As Integer = WordDocument.Sections.Count

        'for each header
        With WordDocument
            For i = 1 To page
                'Delete Header WaterMark
                For Each HdFt In .Sections(i).Headers
                    HdFt.Range.Delete()
                Next
            Next
        End With

End Sub


End Class



12. กด Run Program(F5)  และ Click Delete WaterMark  แสดงผลดังนี้



ในรูปจะเห็นว่าไม่พบลายน้ำ (WaterMark)  แล้ว


13.  Click Delete Header WaterMark  แสดงผลดังนี้



ในรูปนี้จะเห็นว่าในเอกสารของเราใสสะอาด ปราศจากลายน้ำที่รบกวนแล้วค่ะ

ทำง่ายๆ ขั้นตอนไม่ยุ่งยาก หวังว่าคงมีประโยชน์กับตัวเอง และคนอ่าน น่ะค่ะ


Download Semple Coding in vb.net Project

http://www.mediafire.com/?e0s8ull84gzj309