2011-04-04 31 views
5

Estoy tratando de insertar y leer los qrcode de los archivos PDF. Para crear/leer códigos qr a partir de imágenes estoy usando zxing project y para manipular el pdf estoy usando Big Faceless PDF.Lea el código QR del PDF escaneado

Todo funciona bien si creo el código QR, inserto en mi pdf, y luego leo las imágenes del pdf y convierto el correcto al código QR. Sin embargo,, si trato de leer imágenes de un documento escaneado (con una pegatina de código qr adjunta), no puedo obtener la imagen del código qr del pdf (la única imagen que puedo obtener es el Big Faceless PDF, el documento en sí mismo).

¿Alguien sabe una biblioteca de Java para buscar en los archivos pdf los códigos qr?

Gracias por su ayuda

Respuesta

2

La única manera confiable de hacer esto es para convertir la página PDF en un mapa de bits, a continuación, usar algo como ZXing para escanear toda la página para el código de barras. La extracción de las imágenes individuales que componen la página no funcionará en todos los documentos: el código de barras puede crearse utilizando operaciones gráficas en lugar de una imagen incrustada (así es como lo hacemos), o si su PDF fue escaneado desde una fuente de papel como usted ha descrito, generalmente será una gran imagen.

Una vez que haya convertido el PDF a un mapa de bits, ZXing debería ser capaz de hacer esto, al menos en teoría. Naturalmente, recomendaría seguir con nosotros para la conversión a mapa de bits ;-)

Si ZXing tiene problemas para encontrar el código, asegúrese de que tenga suficiente espacio en blanco a su alrededor; necesita 4 módulos claros en todos los lados, por lo que para códigos más pequeños, debe ser aproximadamente el 10% del ancho del código en espacios en blanco alrededor del código, para ayudar a escanear.

Saludos ... Mike (CTO @ BFO)

+0

Hola mike. De hecho, utilicé ICEPdf para convertir la página PDF en una Imagen Buffered. Intenté usar BFO, pero tu documentación era un poco abstracta sobre ese tema. ¿Quieres dar un ejemplo? :) –

+0

'PDF pdf = nuevo PDF (nuevo PDFReader (nuevo archivo (" in.pdf "))); PDFParser parser = new PDFParser (pdf); PagePainter painter = parser.getPagePainter (pagenumber); BufferedImage image = pintor.getBufferedImage (dpi, PDFParser.RGBA); ' No hay mucho que hacer. Envíenos un correo electrónico a soporte si necesita más información. –

Cuestiones relacionadas