从扫描的PDF中读取QR码

9
我正在尝试从PDF文件中插入和读取QR码。为了从图像中创建/读取QR码,我使用zxing项目,为了操作PDF文件,我使用Big Faceless PDF
如果我创建QR码,将其插入到我的pdf中,然后从pdf中读取图像并将正确的图像转换为QR码,则一切正常。 但是,如果我尝试从扫描的文档(有QR码贴纸附在上面)中读取图像,则无法从pdf中获取qr码图像(使用Big Faceless PDF,我只能获取文档本身的图像)。
有人知道用于在pdf文件中搜索qr码的Java库吗?
谢谢您的帮助
2个回答

6
唯一可靠的方法是将PDF页面转换为位图,然后使用类似zxing的工具扫描整个页面以查找条形码。提取组成页面的单个图像并不能适用于每个文档:条形码可能是使用图形操作创建而不是作为嵌入式图像(这就是我们的做法),或者如果您所描述的PDF是从纸质来源扫描的,那么它通常是一个大图像。
一旦您将PDF转换为位图,理论上ZXing应该能够完成此任务。当然,我建议使用我们的位图转换服务;-)
如果ZXing无法找到代码,请确保其周围有足够的空白间隔 - 您需要在所有四个边缘上拥有4个清晰模块,因此对于较小的代码,应该在代码周围留出大约10%的空白间隔,以帮助进行扫描。
干杯... Mike(BFO的CTO)

嗨,Mike。我实际上使用了ICEPdf将PDF页面转换为BufferedImage。我尝试使用BFO,但是你的文档在这个主题上有点抽象。你想给一个例子吗? :) - João Simas
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);不多说!如果需要更多信息,请发送电子邮件至support。 - Mike B
iOS有类似的东西吗? - rafaelcb21

0

我已经让这个工作起来了:

  1. 使用 Imagick 将 pdf 转换为 png
  2. 使用 Zxing \ QrReader 读取 QR 数据

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接