Buenas amigos; 
Llevo ya varios días peleándome con la librería ‘itextsharp’ con Visual Basic 2005 y no he podido encontrar la solución a lo siguiente:
 
Necesito abrir un documento pdf (ya existente y con contenido), agregarle unas cuantas líneas de texto al principio del mismo, para luego imprimirlo.
 
Al no haber encontrado una forma de modificar de forma directa  el documento; he optado por crear un pdf nuevo, agregarle unas líneas de texto y posteriormente pegarle las páginas del documento que quería modificar originalmente. El problema es que al abrir el documento final, quedan las líneas de texto traspapeladas con las páginas que copie del documento original. Y no en encuentro una forma para que la información copiada del documento original empiece después de las líneas agregadas.
 
Por favor; alguien que me colabore? 
 
Muchas gracias por la ayuda que me puedan brindar!!!
 
Ejemplo del código con el que estoy probando:
 
    Public Function PegarArchivoaPdfsYAV3(ByVal Resolucion As String, ByVal Cedula As String) As Boolean
        Dim n As Integer = 0
        Dim reader As New iTextSharp.text.pdf.PdfReader(Resolucion)
 
        Dim document As New iTextSharp.text.Document
        Dim Contador As Integer = 1
        Dim page As PdfImportedPage = Nothing
        Dim writer As PdfWriter = Nothing
        'Dim writer As New PdfWriter '.GetInstance(document, New FileStream(Cedula, FileMode.Open))
        'dim writer as new PdfWriter  = PdfWriter.getInstance(document, new FileStream("archivo_destino.pdf", FileMode.Create))
        Dim cb As PdfContentByte = Nothing
        Dim rotation As Integer = 0
 
 
        n = reader.NumberOfPages
        document = New iTextSharp.text.Document(reader.GetPageSizeWithRot  ation(1), 18, 18, 18, 18)
        writer = PdfWriter.GetInstance(document, New IO.FileStream(Cedula, IO.FileMode.Create))
        document.Open()
        cb = writer.DirectContent
 
        'Dim parrafo As iTextSharp.text.Paragraph
        Dim Parrafo As String
        Dim vNombre As String = "Carlos"
        Dim vDespacho As String = "Penal"
        Dim vPartes As String = "Pedro de Juan"
        Dim vFecResLetras As String = "10/10/2010 :10:10"
        Dim vNunico As String = "10-000001-0170-CA"
        Dim pdestino As String = "0100"
        Dim VMedio As String = "CASILLERO"
 
        Do While Contador <= n
 
            document.SetPageSize(PageSize.LETTER)
            document.NewPage() ' // documento destino
 
            Parrafo = Chr(13) & Chr(10) + "CÉDULA DE NOTIFICACIÓN" & Chr(13) & Chr(10) & Chr(13) & Chr(10) + _
            "Notificando: " & vNombre + Chr(13) & Chr(10) + Chr(13) & Chr(10) & _
            "Notifiqué mediante cédula, la resolución del " & vFecResLetras & " del " & vDespacho + Chr(13) & Chr(10) + Chr(13) & Chr(10) & _
            "Expediente: " & vNunico + Chr(13) & Chr(10) + Chr(13) & Chr(10) & _
            "Forma de Notificación: " + VMedio + Chr(13) & Chr(10) + Chr(13) & Chr(10) & _
            "Dirección: " & pdestino & Chr(13) & Chr(10) + Chr(13) & Chr(10) & _
            "Partes: " + Chr(13) & Chr(10) & vPartes + Chr(13) & Chr(10) + Chr(13) & Chr(10)
            document.Add(New Paragraph(Parrafo))
            document.Add(New Paragraph("1" + Chr(13) & Chr(10)))
            document.Add(New Paragraph("2" + Chr(13) & Chr(10)))
            document.Add(New Paragraph("3" + Chr(13) & Chr(10)))
            document.Add(New Paragraph("4" + Chr(13) & Chr(10)))
            document.Add(New Paragraph("5" + Chr(13) & Chr(10)))
 
            Dim p As New Paragraph(New Chunk("Some Text here", FontFactory.GetFont("Arial", 14, iTextSharp.text.Font.BOLD, iTextSharp.text.Color.RED)))
            document.Add(p)
 
            page = writer.GetImportedPage(reader, Contador)
 
            'Read the imported page's rotation
            rotation = reader.GetPageRotation(Contador)
            'Then add the imported page to the PdfContentByte object as a template based on the page's rotation
            If rotation = 90 Then
                cb.AddTemplate(page, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(Contador).Height)
            ElseIf rotation = 270 Then
                cb.AddTemplate(page, 0, 1.0F, -1.0F, 0, reader.GetPageSizeWithRotation(Contador).Width + 60, -30)
            Else
                cb.AddTemplate(page, 1.0F, 0, 0, 1.0F, 0, 0)
            End If
 
            Contador += 1
        Loop
 
        document.Close()
        ' abrir documento final
        System.Diagnostics.Process.Start("AcroRd32.exe", Cedula)
 
        Return Nothing
 
    End Function 
   
 


