''
'' This code is part of Document Solutions for PDF .NET demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
''
Imports System.IO
Imports System.Drawing
Imports System.Text
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Pdf.AcroForms
Public Class ReplaceText
Public Function CreatePDF(ByVal stream As Stream) As Integer
Dim doc = New GcPdfDocument()
Using fs = File.OpenRead(Path.Combine("Resources", "PDFs", "LeaseAgreementDemo.pdf"))
doc.Load(fs)
' Replace:
' "Jane Donahue" -> "John Doe"
' "(123)098-7654" -> "(007)123-4567"
' "janed@example.com" -> "johnd@example.com"
doc.ReplaceText(New FindTextParams("Jane Donahue", False, True), "John Doe")
doc.ReplaceText(New FindTextParams("(123)098-7654", False, True), "(007)123-4567")
doc.ReplaceText(New FindTextParams("janed@example.com", False, True), "johnd@example.com")
' "13-Dec-20 22:16:00" -> date now
' "13-Dec-22 22:16:00" -> date now + 2 years
Dim termStart = Util.TimeNow()
Dim termEnd = Util.TimeNow() + TimeSpan.FromDays(365 * 2)
doc.ReplaceText(New FindTextParams("13-Dec-20 22:16:00", False, True), termStart.ToString("yyyy-MM-dd") & " " & termStart.ToString("HH:mm"))
doc.ReplaceText(New FindTextParams("13-Dec-22 22:16:00", False, True), termEnd.ToString("yyyy-MM-dd") & " " & termEnd.ToString("HH:mm"))
' "condominium" -> "flat"
Dim font = GrapeCity.Documents.Text.Font.FromFile(Path.Combine("Resources", "Fonts", "NotoSans-Bold.ttf"))
doc.ReplaceText(New FindTextParams("condominium", True, False), "flat", Nothing, font)
' For reference, append the original PDF:
Util.AddNote("For reference, the following pages contain a copy of the original unmodified PDF.", doc.NewPage())
Dim docOrig = New GcPdfDocument()
docOrig.Load(fs)
doc.MergeWithDocument(docOrig)
'' Done:
doc.Save(stream)
Return doc.Pages.Count
End Using
End Function
End Class