Hola a todos, tengo un pequeño problema que podria estar relacionado con mi logico o no segun el caso.
1. Estoy intentanto crear un formulario pdf sobre un pdf ya creado con dos paginas.
2. El lenguaje es vb.net. por que asi se pidio.
3. El problema: La funciòn...en la cual espero que me adicione uno a uno cada control en el nuevo documento, pero el problema es que en la primera pagaina todo lo procesa bien, pero al pasar a al segunda pagina...me borra la anterior, como si le solicitara crear un nuevo documento??
Deja un par de link's, donde es posible descargar (e. documento de origien, el documeto con la primera pagina y formulario creado(DEBUG), y el documento con la pagina dos donde me ha eliminado la primera...).
https://docs.google.com/file/d/0B33O...RzM0hMa1U/edit https://docs.google.com/file/d/0B33O...1GamtoNTA/edit
- ANEXO:funcion que estoy utilizando(No es pulida eso si), le paso las posiciones donde debe crear el control, el nùmero de paginas (para este caso 2), y la pagina donde se debe situar en el momento el control...
NOTA: Esto creo que es importante, cuando la variable string RangePag = "1-2", me copia bien todo, pero cuando RangePag = "2-2", me elimina la primera pagina...y creo que no es muy logico a mi parecer. Ya estoy en la etapa final del servidor y la verdad este pequeño bache en el camino no espero me detenga, saludos y espero me puedan dar una mano o lanzar ideas(disposicion completa a criticas o comentarios. gracias).
reader.SelectPages(RangePag)
Código PHP:
Private Function DrawPDF(ByVal tagName As String, ByVal dleft As Long, ByVal dtop As Long, ByVal dwidth As Long, ByVal dheight As Long, ByVal iPageNumber As Integer, ByVal iCountPages As Integer, ByVal ParamArray list() As String) As Boolean
Dim strText As String = ""
Dim outp As FileStream
Dim reader As PdfReader
Dim RangePag As String
If Not IO.File.Exists(FileBackup) Then
File.Copy(Filename, FileBackup) 'Trabaja sobre un backup del archivo.
End If
reader = New PdfReader(FileBackup)
RangePag = iPageNumber & "-" & iCountPages
reader.SelectPages(RangePag)
outp = New FileStream(FileTpl, FileMode.Create, FileAccess.Write)
'reader.GetPageSize(1)
Dim stamp = New PdfStamper(reader, outp)
Dim field = PdfFormField.CreateTextField(stamp.Writer, False, False, 50)
field.SetWidget(New iTextSharp.text.Rectangle(dleft, dtop, dwidth, dheight), PdfAnnotation.APPEARANCE_NORMAL) 'field.SetWidget(new iTextSharp.text.Rectangle(69, 695, 120, 710), PdfAnnotation.APPEARANCE_NORMAL); //HIGHLIGHT_INVERT
'.............................................xi, yi, xf, yf
'.............................................left, top, width, height
field.SetFieldFlags(PdfAnnotation.FLAGS_NOVIEW) 'FLAGS_PRINT
field.FieldName = Mid(tagName, 2, tagName.Length - 2)
stamp.AddAnnotation(field, 1)
stamp.Close()
outp.Close()
reader.Close()
stamp = Nothing : outp = Nothing : reader = Nothing
File.Delete(FileBackup)
File.Copy(FileTpl, FileBackup)
End Function
Saludos,