Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] iTextSharp Paginas

Estas en el tema de iTextSharp Paginas en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 14/04/2013, 10:22
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
iTextSharp Paginas

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 StringByVal dleft As LongByVal dtop As LongByVal dwidth As LongByVal dheight As LongByVal iPageNumber As IntegerByVal iCountPages As IntegerByVal 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(FileBackupThen
            File
.Copy(FilenameFileBackup)     '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(readeroutp)
        
Dim field PdfFormField.CreateTextField(stamp.WriterFalseFalse50)

        
field.SetWidget(New iTextSharp.text.Rectangle(dleftdtopdwidthdheight), PdfAnnotation.APPEARANCE_NORMAL)  'field.SetWidget(new iTextSharp.text.Rectangle(69, 695, 120, 710), PdfAnnotation.APPEARANCE_NORMAL); //HIGHLIGHT_INVERT
        '
.............................................xiyixfyf
        
'.............................................left, top, width, height

        field.SetFieldFlags(PdfAnnotation.FLAGS_NOVIEW) '
FLAGS_PRINT
        field
.FieldName Mid(tagName2tagName.Length 2)
        
stamp.AddAnnotation(field1)
        
stamp.Close()
        
outp.Close()
        
reader.Close()

        
stamp Nothing outp Nothing reader Nothing
        File
.Delete(FileBackup)
        
File.Copy(FileTplFileBackup)

    
End Function 

Saludos,
  #2 (permalink)  
Antiguo 14/04/2013, 10:32
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
Respuesta: iTextSharp Paginas

Bueno, tambien es muy probable que esa funcion no este encaminada a indicar la seleccion de la pagina, si no mas bien el total de paginas que debe procesar...Y en ese orden de ideas tal vez exista algo asi como un break page, o algo por el estilo en itextSharp...Seguire buscando, y si encuentro la solucion aqui estara para futuras referencias.
  #3 (permalink)  
Antiguo 14/04/2013, 11:53
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
Respuesta: iTextSharp Paginas

Bueno, lamento mucho preguntar...pero la realidad es que aunque suene algo feo el dicho " Pero lo tenia en las narices!" y no me habia fijado en el 1 que tenia quemado...
Solo fue cambiar esta linea con esto:
Código PHP:
stamp.AddAnnotation(fieldiPageNumber
Por esto:
Código PHP:
stamp.AddAnnotation(fieldiPageNumber
Y bueno, finalmente la funcion trabaja de forma casi perfecta, solo serà pulirla un poco mas, que permita definir el tipo de control, y adicionar la administracion de uno hilos por solicitud con mas seguro que delegates, administrado por el framework, y la validacion de errores... pero funciona!! Jejej.

Etiquetas: formulario, itextsharp, servidor, vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:55.