9

I'm trying to insert and read qrcode's from PDF files. To create/read qr codes from images i'm using zxing project and to manipulate the pdf i'm using Big Faceless PDF.

Everything works well if i create the QR Code, insert into my pdf, and then read the images from the pdf and convert the correct one to QR Code. However, if i try to to read images from a scanned document (with a qr code sticker attach to it), i cannot obtain the qr code image from the pdf (the only image i can get, using Big Faceless PDF, is the document it self).

Does anyone knows a Java library to search in pdf files for qr codes?

Thanks for you help

João Simas
  • 231
  • 1
  • 4
  • 11

2 Answers2

6

The only reliable way to do this is to convert the PDF page to a bitmap, then using something like zxing to scan the entire page for the barcode. Extracting the individual images that make up the page won't work on every document: the barcode may be created using graphics operations rather than as an embedded image (that's how we do it), or if you PDF was scanned from a paper source as you've described, it will usually be one big image.

Once you've got the PDF converted to a bitmap, ZXing should be able to do this, at least in theory. Naturally I'd recommend sticking with us for the conversion to bitmap ;-)

If ZXing is having trouble finding the code, make sure it has enough white-space around it - you need 4 clear modules on all sides, so for smaller codes it should be about 10% of the width of the code in whitespace around the code, to help it scan.

Cheers... Mike (CTO@BFO)

Mike B
  • 1,600
  • 1
  • 12
  • 8
  • Hi mike. I actually used ICEPdf to convert the PDF page into a BufferedImage. I tried to use BFO, but you're documentation was a bit abstract over that subject. Do you want to give an example? :) – João Simas Apr 06 '11 at 08:51
  • `PDF pdf = new PDF(new PDFReader(new File("in.pdf"))); PDFParser parser = new PDFParser(pdf); PagePainter painter = parser.getPagePainter(pagenumber); BufferedImage image = painter.getBufferedImage(dpi, PDFParser.RGBA);` Not much to it! Email us at support if you need more info. – Mike B Apr 20 '11 at 17:12
  • is there something similar for IOS? – rafaelcb21 Mar 15 '18 at 17:39
0

I have gotten this to work:

  1. Use Imagick to converts pdfs into pngs
  2. Use Zxing \ QrReader to read the QR data
kenny_k
  • 3,831
  • 5
  • 30
  • 41
JKippson
  • 1
  • 1