วันนี้นำเสนอ การลบลายน้ำใน 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