gpt4 book ai didi

java - 如何读取 Data Matrix 条形码

转载 作者:太空宇宙 更新时间:2023-11-04 14:31:12 30 4
gpt4 key购买 nike

我必须读取 PDF 文件中的数据矩阵代码,我正在研究其可能性,对此我有一些疑问:

1.- 我与 Itext 合作,我正在寻找有关使用此库读取此 QR 条形码的可能性的信息,但我没有相关结果,这可能吗?

2.- 我发现了另一个库 ZXING :https://github.com/zxing/zxing ,但我找不到阅读PDF内部的方法。

有人可以帮我解决这个问题吗?

<小时/>

新信息,新想法,解决问题:

这是我的代码,使用 PDFBOX 我找到每个页面的图像,然后我检查该图像是否是用于获取数据的条形码,我不知道为什么,但我无法使用此代码检测条形码,PDF 中的条形码质量很高。

我尝试使用 Reader 实现,但找不到它,我有版本 3.1 ZXING,也许是其他版本?

如果我像这样直接使用文件中的图像,效果完美:

Image image = ImageIO.read(new File("C:\Workarea\testBarcode.png")); BufferedImage buffered = (BufferedImage) image;

PDDocument document; try {
document3 = PDDocument.load("TEST_QR_BARCODE.pdf");
List pages = document.getDocumentCatalog().getAllPages();

Iterator iter = pages.iterator();
while( iter.hasNext() )
{
PDPage page = (PDPage)iter.next();
PDResources resources = page.getResources();
Map images;

images = resources.getImages();

if( images != null )
{
Iterator imageIter = images.keySet().iterator();
while( imageIter.hasNext() )
{
String key = (String)imageIter.next();
PDXObjectImage image = (PDXObjectImage)images.get( key );
BufferedImage testcojones = image.getRGBImage();

try {
LuminanceSource source;

source = new BufferedImageLuminanceSource(testcojones);

BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

Result result = new MultiFormatReader().decode(bitmap);

ParsedResult parsedResult = ResultParser.parseResult(result);

System.out.println(" (format: " + result.getBarcodeFormat() + ", type: " +
parsedResult.getType() + "):\nRaw result:\n" + result.getText() + "\nParsed result:\n" +
parsedResult.getDisplayResult());
System.out.println("Found " + result.getResultPoints().length + " result points.");

for (int i = 0; i < result.getResultPoints().length; i++) {
ResultPoint rp = result.getResultPoints()[i];
if (rp != null) {
System.out.println(" Point " + i + ": (" + rp.getX() + ',' + rp.getY() + ')');
}
}

} catch (NotFoundException ignored) {
System.out.println("No barcode found!");
}

}
}
} } catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace(); }

最佳答案

要使用zxing,您只需在Java 程序中从PDF 创建一个BufferedImage。这是一个单独的问题,但在另一个库中应该是可能的。然后您可以按照您在此处看到的方式使用 BufferedImageLuminanceSource : https://github.com/zxing/zxing/blob/master/javase/src/main/java/com/google/zxing/client/j2se/DecodeWorker.java#L125

关于java - 如何读取 Data Matrix 条形码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26119879/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com