02/05/2013, 05:17
|
| | Fecha de Ingreso: abril-2013
Mensajes: 37
Antigüedad: 11 años, 7 meses Puntos: 1 | |
Respuesta: Como convertir un tiff en pdf? Como tengo la sensacion de que mas uno ha tenido o va a tener esta misma duda, voy a añadir un link con el lugar donde encontre el codigo (lamento decirles que por desgracia esta TODO en ingles (con lo bonito que es el español...)).
Link:
http://itext-general.2136553.n4.nabble.com/Converting-Fax-Tiff-to-PDF-td4186863.html
Tranquilos, lo he probado (y ensamblado a mi codigo) y funciona de maravilla.
Aqui les dejo el mismo código pero comentado y modificado por mí (todo en español, siiiiiii):
Private Sub botonEncargadoDeConvertirTifPdf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles botonEncargadoDeConvertirTifPdf.Click 'boton mediante el cual ejecutaremos el codigo que se encargara de la conversion
' Creacion del documento (lo llmaremos "documento" (yo para los nombres no me rompo la cabeza))
Dim documento As New iTextSharp.text.Document(iTextSharp.text.PageSize. A4, 0, 0, 0, 0) 'el pdf sera tamaño A4 y en este caso sin margenes (los 4 ceros que estan detras del A4)
' Creacion de la escritura del pdf (el pdf como tal, pelao y mondao)
Dim writer As iTextSharp.text.pdf.PdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(document o, New System.IO.FileStream("c:\rutaEnLaQueSeCrearaElDocu mento\imagenConvertida.pdf", System.IO.FileMode.Create)) 'creamos el "documento" en la ruta "rutaEnLaQueSeCrearaElDocumento"
' Cargamos el archivo tif (se supone que hemos escaneado anteriormente y ahora queremos CONVERTIR el archivo tif generado en el escaneo) por paginas
Dim bm As New System.Drawing.Bitmap("c:\rutaEnLaQueSeGuardoElTif \imagenEscaneada1.tif") 'ruta alsoluta o relativa donde se encuentra el tif (ruta y nombre ej: c:\carpetaImagenEscaneada\imagenRecienEscaneadaTIF .tif)
Dim total As Integer = bm.GetFrameCount(System.Drawing.Imaging.FrameDimen sion.Page) 'calculamos cuantas paginas tiene el tif
documento.Open() 'abrimos el "documento" para trabajar con el
Dim cb As iTextSharp.text.pdf.PdfContentByte = writer.DirectContent 'admito que no se que hace exactamente esta linea, pero es TOTALMENTE NECESARIA
For k As Integer = 0 To total - 1 'en fin, convertir pagina por pagina (k es solo una variable para usar el contador for)
bm.SelectActiveFrame(System.Drawing.Imaging.FrameD imension.Page, k) 'lo mismo me pasa con la linea de antes, no se para que se usa pero es necesaria
Dim img As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(bm, System.Drawing.Imaging.ImageFormat.Bmp) 'otra de lo mismo
' scale the image to fit in the page (vamos, dar un tamaño a la pagina)
img.ScalePercent(72.0F / img.DpiX * 100)
img.SetAbsolutePosition(0, 0) 'posicion de la imagen escaneada dentro de la pagina del pdf
cb.AddImage(img) 'añadir la imagen (¿sino para que corcho la hemos escaneado?)
documento.NewPage() 'nueva pagina (si es solo una pagina esto no vale demasiado, pero es mejor no suprimirlo)
Next 'bueno, para los que no esten familiarizadon con los bucles controlados for, el next es para pasar al siguiente elemento del contador
documento.Close() 'cerramos el documento (ya hemos trasteado bastante con el)
MessageBox.Show("Proceso terminado") 'no hace falta poner esta caja de texto, pero queda bonito
End Sub
En fin, espero que estas lineas sirvan para aliviar la angustia de futuros programadores que no encuentran la manera de usar itextsharp para convertir un tif en pdf.
PD: la que he tenido que liar para encontrar esto, y nada en español... |