Imports System.Diagnostics Imports InsurtecPW.Business Imports System.IO Imports iTextSharp.text.pdf Imports iTextSharp.text Imports System.Collections.Generic Imports System.Data Public NotInheritable Class PDFFormsEngine Public Shared Sub FillpdfForm(ByVal policy As PoliciesBO, ByVal template As String, ByVal output As String, _ < and a number of other params representing businees objects > ... ByVal Propmaster As PropMasterBO, ByVal Terrorism As TerrorismBO) Dim ADDITIONALPREMTRIA As String = policy.ADDITIONALPREMTRIA.ToString() Dim ADDPREMAUTO As String = policy.ADDPREMAUTO.ToString() Dim AGENCYCODE As String = policy.AGENCYCODE Dim AGENTCITY As String = policy.AGENTCITY Dim EXPIREDATE As String = String.Format("{0:MM/dd/yy}", policy.EXPIREDATE) ' Here's the iTextsharper stuff Dim pword As Byte() pword = Base.Utility.StrToByteArray("jellopudding") Dim pdfReader As New PdfReader(template, pword) Dim pdfStamper As New PdfStamper(pdfReader, New FileStream( _ output, FileMode.Create)) 'These are your fields to fill out Dim pdfFormFields As AcroFields = pdfStamper.AcroFields ' set single fields pdfFormFields.SetField("ADDITIONAL PREM TRIA", ADDITIONALPREMTRIA) pdfFormFields.SetField("ADD PREM AUTO", ADDPREMAUTO) pdfFormFields.SetField("AGENCY CODE", AGENCYCODE) pdfFormFields.SetField("AGENT CITY", AGENTCITY) ... pdfFormFields.SetField("APP DATE", APPDATE) pdfFormFields.SetField("BUSINESS DESCRIPTION", BUSINESSDESCRIPTION) pdfFormFields.SetField("BUSINESSINCOMEANDEXPENSE", ... ' Here are examples of multilines on form filled from child BOs ' Set group fields ''-- Iterate child bos used by grids in PDFFormsEngine Dim rownum As Int32 '-- InsuredName rownum = 1 For Each bo As InsuredNameBO In InsuredName.GetEnumerable() pdfFormFields.SetField("INSURED NAME" & rownum, bo.InsuredName) rownum += 1 Next ''-- DEC rownum = 1 For Each bo As DECBO In DEC.GetEnumerable() pdfFormFields.SetField("COVERAGE PART" & rownum, bo.CoveragePart) pdfFormFields.SetField("COVERAGE PREM" & rownum, bo.CoveragePrem.ToString()) rownum += 1 Next ' The trick to checkboxes on the form is to just set it to "Yes" if true '-- FILL FORMOFBUSINESS FIELDS BASED ON ENUM Select Case policy.FORMOFBUSINESS Case InsurtecPW.Business.FormofBusiness.CORPORATION pdfFormFields.SetField("CORPORATION", "Yes") Case InsurtecPW.Business.FormofBusiness.JOINTVENTURE pdfFormFields.SetField("JOINT VENTURE", "Yes") Case InsurtecPW.Business.FormofBusiness.LLC pdfFormFields.SetField("LLC", "Yes") Case InsurtecPW.Business.FormofBusiness.ORGANIZATION pdfFormFields.SetField("ORGANIZATION", "Yes") Case InsurtecPW.Business.FormofBusiness.PARTNERSHIP pdfFormFields.SetField("PARTNERSHIP", "Yes") Case InsurtecPW.Business.FormofBusiness.PROPRIETORSHIP pdfFormFields.SetField("PROPRIETORSHIP", "Yes") End Select ' This closes the form so it is now just a regular PDF pdfStamper.FormFlattening = True pdfStamper.Close() ' see the result ' process.start(output) End Sub End Class>Hi Charles,
>> >> >>Imports System >>Imports System.IO >>Imports iTextSharp.text >>Imports iTextSharp.text.pdf >>Imports System.Collections.Generic >> >>Public NotInheritable Class PDFJoiner >> >> Public Shared Sub JoinPDFs(ByVal Masterpdf As String, ByVal sourcefiles As String()) >> >> Dim f As Integer = 0 >> >> ' we create a reader for a certain document >> ' owner password as second param requires a byte array >> >> Dim pword As Byte() >> >> pword = Base.Utility.StrToByteArray("jellopudding") >> >> Dim reader As New PdfReader(sourcefiles(0), pword) >> >> ' we retrieve the total number of pages >> Dim n As Integer = reader.NumberOfPages >> ' Console.WriteLine("There are " & n & " pages in the original file.") >> ' step 1: creation of a document-object >> Dim document As New Document(reader.GetPageSizeWithRotation(1)) >> >> ' step 2: we create a writer that listens to the document >> >> Dim writer As PdfWriter = PdfWriter.GetInstance(document, New FileStream(Masterpdf, FileMode.Create)) >> ' step 3: we open the document >> document.Open() >> >> Dim cb As PdfContentByte = writer.DirectContent >> Dim page As PdfImportedPage >> Dim rotation As Integer >> ' step 4: we add content >> >> f = 1 >> While f < sourcefiles.Length >> >> Dim i As Integer = 0 >> While i < n >> i += 1 >> document.SetPageSize(reader.GetPageSizeWithRotation(i)) >> >> document.NewPage() >> >> page = writer.GetImportedPage(reader, i) >> rotation = reader.GetPageRotation(i) >> If rotation = 90 Or rotation = 270 Then >> cb.AddTemplate(page, 0, -1, 1, 0, 0, reader.GetPageSizeWithRotation(i).Height) >> Else >> cb.AddTemplate(page, 1, 0, 0, 1, 0, 0) >> End If >> >> End While >> >> System.Diagnostics.Debug.WriteLine("Processed document " & f & " - " & sourcefiles(f)) >> >> f += 1 >> >> If f < sourcefiles.Length Then >> >> reader = New PdfReader(sourcefiles(f), pword) >> >> ' we retrieve the total number of pages >> n = reader.NumberOfPages >> >> System.Diagnostics.Debug.WriteLine("There are " & n & " pages in the original file.") >> End If >> >> End While >> >> document.Close() >> >> End Sub >> >> >>End Class >> >>