Imports System.IO
Imports ComPDFKit.PDFDocument
Module BatesTest
Private parentPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory())))
Private outputPath As String = Path.Combine(parentPath, "Output", "VB")
Private IntToLocationDic As New Dictionary(Of Integer, String)() From
{
{0, "Top Left"},
{1, "Top Middle"},
{2, "Top Right"},
{3, "Bottom Left"},
{4, "Bottom Middle"},
{5, "Bottom Right"}
}
Sub Main()
#Region "Preparation work"
Console.WriteLine("Running bates test sample..." & vbCrLf)
SDKLicenseHelper.LicenseVerify()
If Not Directory.Exists(outputPath) Then
Directory.CreateDirectory(outputPath)
End If
#End Region
#Region "Sample 1: Add bates"
Dim document As CPDFDocument = CPDFDocument.InitWithFilePath("CommonFivePage.pdf")
If AddBates(document) Then
Console.WriteLine("Add bates done.")
End If
document.Release()
Console.WriteLine("--------------------")
#End Region
#Region "Samples 2: Edit bates"
document = CPDFDocument.InitWithFilePath("Bates.pdf")
If EditBates(document) Then
Console.WriteLine("Edit bates done.")
End If
document.Release()
Console.WriteLine("--------------------")
#End Region
#Region "Sample 3: Clear bates"
document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf")
If ClearBates(document) Then
Console.WriteLine("Clear bates done.")
End If
document.Release()
Console.WriteLine("--------------------")
#End Region
Console.WriteLine("Done!")
Console.WriteLine("--------------------")
Console.ReadLine()
End Sub
Private Function AddBates(document As CPDFDocument) As Boolean
Dim addBatesPath As String = outputPath & "\AddBates.pdf"
Dim bates As CPDFBates = document.GetBates()
Dim color As Byte() = {255, 0, 0}
bates.SetPages("0-" & (document.PageCount - 1)) ' Page numbering from 0
For i As Integer = 0 To 5
bates.SetText(i, "<<#3#5#Prefix-#-Suffix>>") ' 3 digits, starting from 5
bates.SetTextColor(i, color)
bates.SetFontSize(i, 14)
Console.WriteLine("Text: {0}", bates.GetText(i))
Console.WriteLine("Location: {0}" & vbCrLf, IntToLocationDic(i))
Next
bates.Update()
If Not document.WriteToFilePath(addBatesPath) Then
Return False
End If
Console.WriteLine("Browse the changed file in " & addBatesPath)
Return True
End Function
Private Function EditBates(document As CPDFDocument) As Boolean
Dim bates As CPDFBates = document.GetBates()
' Get the old Bates text from index 0
If Not String.IsNullOrEmpty(bates.GetText(0)) Then
Console.WriteLine("Get old Bates 0 done, text is {0}", bates.GetText(0))
Else
Console.WriteLine("Get Bates 0 failed, or it does not exist")
Return False
End If
' Edit the Bates text at index 0
bates.SetText(0, "<<#3#1#ComPDFKit-#-ComPDFKit>>")
' Update the Bates text
bates.Update()
Console.WriteLine("Change Bates 0 done, new text is {0}", bates.GetText(0))
Dim editBatesPath As String = outputPath & "\EditBatesTest.pdf"
If document.WriteToFilePath(editBatesPath) Then
Console.WriteLine("Browse the changed file in " & editBatesPath)
Return True
Else
Return False
End If
End Function
'''
''' Clear bates.
'''
''' Document with bates
Private Function ClearBates(document As CPDFDocument) As Boolean
Dim bates As CPDFBates = document.GetBates()
bates.Clear()
Dim clearBatesPath As String = outputPath & "\ClearBatesTest.pdf"
If document.WriteToFilePath(clearBatesPath) Then
Console.WriteLine("Browse the changed file in " & clearBatesPath)
Return True
Else
Return False
End If
End Function
End Module