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

[SOLUCIONADO] Como convertir un tiff en pdf?

Estas en el tema de Como convertir un tiff en pdf? en el foro de .NET en Foros del Web. Hola visitantes y miembros del foro, gracias por dejaros caer por estos barrios dejados de la mano de Dios...... en fin, vamos a lo que ...
  #1 (permalink)  
Antiguo 30/04/2013, 12:24
 
Fecha de Ingreso: abril-2013
Mensajes: 37
Antigüedad: 11 años, 6 meses
Puntos: 1
Como convertir un tiff en pdf?

Hola visitantes y miembros del foro, gracias por dejaros caer por estos barrios dejados de la mano de Dios...... en fin, vamos a lo que vamos:

Estoy casi al final de un proyecto interesante (lo tipico, visual studio 2010 usando .net), el cual controla un escaner (lo controla, escanea, guarda la imagen (el archivo tiff) en la ruta que lo le pido etc).

El caso es que para terminar el asunto necesito crear un metodo que haga lo siguiente:
-Que convierta un archivo tiff en pdf
-Ya esta, eso es todo

Como indica el titulo, estoy usando una librería bastante interesante (y muy útil) de .net llamada "itextsharp". Esta librería permite al programador crear, modificar, manejar todo lo referente a pdf.

Según he leído en otros sitios (y he investigado más que Sherlock Holmes) todos coinciden en que esta operación de conversión la realiza un método de esta librería, pero NADIE parece dignarse a explicar cómo lo hace, que código se usa ni nada parecido (de hecho la explicación más completa ha sido:"Usando .net deberías realizar la conversión con la dll itextsharp, que puede controlar y hacer de todo con los pdf, y no hay problema monetario alguno, ya que es gratuita.").

Ya he usado antes esta dll pero no se como realizar la conversión. Ayuda


De antemano, gracias, muchas gracias.
  #2 (permalink)  
Antiguo 30/04/2013, 12:33
 
Fecha de Ingreso: noviembre-2011
Ubicación: Huancayo
Mensajes: 70
Antigüedad: 13 años
Puntos: 6
Respuesta: Como convertir un tiff en pdf?

Hola,
solo un comentario y si capturas en PDF directamente desde el Scanner.
__________________
________________
CompuInicio.com
Iniciando Bien . . .
  #3 (permalink)  
Antiguo 02/05/2013, 04:41
 
Fecha de Ingreso: abril-2013
Mensajes: 37
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Como convertir un tiff en pdf?

jajaja, buena idea, pero resulta que mi programa solo escanea en .tif (no uso un programa de por ahi, sino uno mio, creado y mascado por mi [e hai la falta de calidad de mi programa jaja]). Pero la idea en si es bastante buena (saltarme la conversion generando directamente un pdf).

Muchas gracias por la sugerencia, la pondre en practica para futuros proyectos.

Pero lamento decir que al final conseguí (tas mucho buscar y traducir del ingles) la manera de realizar una conversion usando la libreria de vb.net itextsharp(en mi caso yo necesito tener ambos archivos, el tif y un pdf (el pdf seria una conversion de una copia del tif) en fin un rollo programa pero tela util jaja).

De todos modos muchas gracias, la sugerencia es bastante buena.
  #4 (permalink)  
Antiguo 02/05/2013, 05:17
 
Fecha de Ingreso: abril-2013
Mensajes: 37
Antigüedad: 11 años, 6 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...

Etiquetas: 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 14:03.