需要使用其他库先解密 PDF,然后再进行解析。
After that:
Last Updated: 2026-02-11
Tested With: GroupDocs.Parser 25.5 for Java
Author: GroupDocs
Translate:
最后更新: 2026-02-11
测试环境: GroupDocs.Parser 25.5 for Java
作者: GroupDocs
Make sure to keep the markdown formatting.
Now produce final content.# 如何使用 GroupDocs.Parser for Java 按模板解析 PDF 文档页面
在当今的数字环境中,how to parse pdf 文件的高效处理是开发者常见的挑战。无论您需要提取 QR 码、读取条形码,还是从表单中读取结构化字段,可靠的解析解决方案都能节省大量时间。在本指南中,我们将通过 GroupDocs.Parser for Java 按模板解析 how to parse pdf 页面,重点是从 PDF 文档中提取条形码数据。
快速答案
- 什么库可以帮助您按模板解析 pdf? GroupDocs.Parser for Java.
- 演示的条形码类型是什么? QR code(可更改为其他类型)。
- 我需要许可证吗? 免费试用可用于测试;生产环境需要永久许可证。
- 我可以使用 Maven 运行吗? 可以——只需将仓库和依赖添加到您的
pom.xml。 - 需要哪个 Java 版本? JDK 8 或更高。
前置条件
在开始之前,请确保您已具备:
- Java Development Kit (JDK) 8+ 已安装。
- 用于依赖管理的 Maven(可选,但推荐)。
- 对 Java 编程概念有基本了解。
必需的库和依赖
要在项目中使用 GroupDocs.Parser,请添加以下 Maven 配置:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/parser/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>25.5</version>
</dependency>
</dependencies>
或者,您可以直接从 GroupDocs.Parser for Java releases 下载最新版本。
获取许可证
您可以通过从官方站点下载来开始使用 GroupDocs.Parser 的免费试用。若需长期使用,请考虑获取临时许可证或通过 此链接 购买。
为 Java 设置 GroupDocs.Parser
要使用 Maven 将 GroupDocs.Parser 集成到项目中:
- 添加仓库和依赖 – 将上面的 XML 代码片段复制到您的
pom.xml中。 - 导入所需类 – 如
Parser、Template、DocumentPageData等类位于com.groupdocs.parser包中。 - 初始化 Parser – 创建一个
Parser实例并指向您要处理的 PDF。
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.DocumentPageData;
import com.groupdocs.parser.templates.Template;
import com.groupdocs.parser.templates.TemplateBarcode;
import com.groupdocs.parser.templates.Rectangle;
import com.groupdocs.parser.templates.Point;
import com.groupdocs.parser.templates.Size;
String documentPath = "YOUR_DOCUMENT_DIRECTORY/SamplePdfWithBarcodes";
try (Parser parser = new Parser(documentPath)) {
// Your parsing logic here
}
如何使用 GroupDocs.Parser 按模板解析 pdf
功能 1:定义条形码字段(java 提取 qr code)
首先,我们描述每页上条形码的位置和大小。这一步是 parse pdf by template 的核心,因为它告诉解析器确切的查找位置。
TemplateBarcode barcode = new TemplateBarcode(
new Rectangle(new Point(405, 55), new Size(100, 50)),
"QR");
在这里,我们创建一个 TemplateBarcode,其目标是位于坐标 (405, 55) 且尺寸为 100 × 50 像素的 QR 码。
功能 2:构建模板(java 读取条形码 pdf)
接下来,我们将条形码定义封装在 Template 对象中。该模板可在文档的每一页重复使用。
Template template = new Template(Arrays.asList(new com.groupdocs.parser.templates.TemplateItem[]{barcode}));
功能 3:按模板解析文档页面(从 pdf 中提取条形码)
现在我们遍历每一页,应用模板,并收集条形码值。
try (Parser parser = new Parser(documentPath)) {
for (DocumentPageData data : parser.parsePagesByTemplate(template)) {
for (int i = 0; i < data.getCount(); i++) {
com.groupdocs.parser.templates.PageBarcodeArea area = data.get(i).getPageArea() instanceof com.groupdocs.parser.templates.PageBarcodeArea
? (com.groupdocs.parser.templates.PageBarcodeArea) data.get(i).getPageArea()
: null;
String result = area == null ? "Not a template barcode field" : area.getValue();
}
}
}
循环会检查识别的区域是否为 PageBarcodeArea。如果是,则获取条形码的字符串值。
功能 4:打印提取的条形码数据(java 提取 qr code)
为了快速验证,您可以将每个条形码值打印到控制台:
try (Parser parser = new Parser(documentPath)) {
for (DocumentPageData data : parser.parsePagesByTemplate(template)) {
for (int i = 0; i < data.getCount(); i++) {
com.groupdocs.parser.templates.PageBarcodeArea area = data.get(i).getPageArea() instanceof com.groupdocs.parser.templates.PageBarcodeArea
? (com.groupdocs.parser.templates.PageBarcodeArea) data.get(i).getPageArea()
: null;
String result = area == null ? "Not a template barcode field" : area.getValue();
System.out.println(result);
}
}
}
运行此代码片段将输出每个提取的条形码(或 QR 码)值,帮助您确认 how to parse pdf 如预期般工作。
为什么使用 GroupDocs.Parser for Java 按模板解析 pdf?
- 精确性 – 模板允许您定位精确坐标,消除误报。
- 性能 – 解析按页进行,即使是大型 PDF 也能保持低内存使用。
- 灵活性 – 支持多种条形码类型(QR、Code128、DataMatrix 等),并可扩展到其他字段类型。
- 跨平台 – 在任何运行 Java 8+ 的平台上均可工作,适合服务器端处理。
常见问题及解决方案
| 症状 | 可能原因 | 解决方案 |
|---|---|---|
| 未返回条形码值 | 模板坐标与实际条形码位置不匹配 | 使用 PDF 查看器的测量工具验证 X/Y 坐标和尺寸。 |
Parser 抛出 FileNotFoundException | documentPath 错误或缺少读取权限 | 确保路径是绝对路径或相对于项目根目录,并且文件可读。 |
| 扫描的 PDF 检测精度低 | 图像分辨率对条形码扫描器来说太低 | 使用更高分辨率的扫描(300 dpi 或更高)或对 PDF 进行锐化过滤预处理。 |
| 大型 PDF 出现内存不足错误 | Parser 在内存中保留了太多页面 | 将 PDF 分成更小批次处理或增大 JVM 堆大小(-Xmx2g)。 |
实际应用
- 库存管理 – 自动读取供应商 PDF 中的条形码,以更新库存数据库。
- 法律文件验证 – 提取嵌入数字签名的 QR 码,用于审计追踪。
- 数据迁移 – 在将记录从旧系统迁移时使用条形码作为唯一标识符。
性能考虑
- 及时关闭 Parser –
try‑with‑resources块确保文件句柄被释放。 - 监控内存 – 大型 PDF 可能占用大量堆内存;考虑流式处理或分块处理。
结论
您现在已经拥有一套完整、可用于生产的 how to parse pdf 按模板解析页面的指南,使用 GroupDocs.Parser for Java。通过定义条形码模板、遍历页面并提取值,您可以自动化几乎所有基于条形码的工作流。
下一步
- 通过更改
TemplateBarcode的第二个参数,尝试其他条形码类型(例如 Code128、DataMatrix)。 - 将多个
TemplateBarcode对象组合,以处理单页上混合的条形码布局。 - 通过浏览 GroupDocs.Parser documentation 深入了解 API,获取文本提取、图像提取和自定义模板创建等功能。
FAQ 部分
Q: 我可以从扫描的文档中解析条形码吗?
A: 可以,只要它们是 PDF 格式。确保分辨率足够高,以准确检测条形码。
Q: 如何在单页上处理多种条形码?
A: 为每种条形码定义额外的 TemplateBarcode 实例,并设置相应的坐标和尺寸。
Q: 如果我的文档包含图像而不是 PDF,该怎么办?
A: GroupDocs.Parser 主要适用于基于文本的文档。请先将图像转换为可搜索的 PDF。
Q: 能够从加密的 PDF 中提取数据吗?
A: 可能需要使用其他库先解密 PDF,然后再进行解析。
最后更新: 2026-02-11
测试环境: GroupDocs.Parser 25.5 for Java
作者: GroupDocs