troubleshooting Question

Add image to PDF with iTextSharp and VB.Net

Avatar of PNRT
PNRT asked on
Visual Basic.NET
1 Comment1 Solution3762 ViewsLast Modified:
Hi Experts

I have the following code using iTextSharp.   It creates a barcode and inserts it into a PDF document created by iTextSharp

The code works correctly but only with newly created documents.   I need to be able to do the same thing but with an already existing PDF.   I have searched and found many examples but all assume a newly created document which doesn't help me.

Any assistance would be appreciated


        Dim Batch As String = "12345"

        'Define a new PDF Doc
        Dim doc As New Document(New iTextSharp.text.Rectangle(350, 400), 5, 5, 1, 1)  ''the size of the rectangle width x height

        Try
            Dim writer As PdfWriter = PdfWriter.GetInstance(doc, New FileStream("C:\somepath\TestLabel.abc", FileMode.Create))
            doc.Open()

            Dim dt As New DataTable()
            dt.Columns.Add("Batch")
            Dim row As DataRow = dt.NewRow()
            row("Batch") = Batch.ToString    '& i.ToString()
            dt.Rows.Add(row)
          
            Dim img1 As System.Drawing.Image = Nothing
            For i As Integer = 0 To dt.Rows.Count - 1
                If i <> 0 Then
                    doc.NewPage()
                End If

                Dim cb As iTextSharp.text.pdf.PdfContentByte = writer.DirectContent
                Dim bc As iTextSharp.text.pdf.Barcode128 = New Barcode128() 
                bc.TextAlignment = Element.ALIGN_LEFT
                bc.Code = dt.Rows(i)("Batch").ToString()
                bc.StartStopText = False
                bc.CodeType = iTextSharp.text.pdf.Barcode128.EAN13
                bc.Extended = True

                Dim img As iTextSharp.text.Image = bc.CreateImageWithBarcode(cb, iTextSharp.text.Color.BLACK, iTextSharp.text.Color.BLACK)

                cb.SetTextMatrix(100.5F, 320.0F)
                img.ScaleToFit(240, 600)
                img.SetAbsolutePosition(5.5F, 320) 
                cb.AddImage(img)
            Next i

            doc.Close()

            Catch ex As Exception
                doc.Close()
                MsgBox(ex.ToString)
            End Try
ASKER CERTIFIED SOLUTION
Karrtik Iyer
Software Architect

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 1 Answer and 1 Comment.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 1 Comment.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros