Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/02/2011, 05:46
Avatar de Bravenap
Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
[SOLUCIONADO]: iTextSharp: combinar dos PDF y desactivar formularios

Hola. Más o menos ya lo tengo solucionado. En lugar de almacenar los dos formularios en MemoryStream los guardo en dos archivos temporales. Con esto se consigue que se aplique FormFlattening correctamente. Lógicamente hay que tener permisos de escritura para almacenar los temporales.

Luego, combino los dos documentos en el definitivo ahora sí con MemoryStream, lo envío y, finalmente, elimino los temporales.

Código vb:
Ver original
  1. Dim stp01 As New PdfStamper(mod01, new FileStream(tempMod01))
  2. Dim stp02 As New PdfStamper(mod02, new FileStream(tempMod02))
  3.  
  4. ..........
  5.  
  6. stp01.FormFlattening = True
  7. stp01.Close()
  8. mod01.Close()
  9.  
  10. ..........
  11. stp02.FormFlattening = True
  12. stp02.Close()
  13. mod02.Close()
  14.  
  15. ......
  16. mod01 = New PdfReader(tempMod01)
  17. For n = 1 To mod01.NumberOfPages
  18.      page = copia.GetImportedPage(mod01, n)
  19.      copia.AddPage(page)
  20. Next
  21.  
  22. ....
  23.  
  24. File.Delete(tempMod01)
  25. File.Delete(tempMod02)

Un saludo
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!