使用pdfbox获取表单字段值

2024-01-10

我是第一次使用 pdfbox。现在我正在网站上阅读一些内容Pdf http://pdfbox.apache.org/

总结一下我有一个这样的pdf:

只是我的文件有很多不同的组件(文本字段、单选按钮、复选框)。对于此 pdf,我必须阅读这些值:Mauro、Rossi、My Company。现在我编写了以下代码:

PDDocument pdDoc = PDDocument.loadNonSeq( myFile, null );
PDDocumentCatalog pdCatalog = pdDoc.getDocumentCatalog();
PDAcroForm pdAcroForm = pdCatalog.getAcroForm();

for(PDField pdField : pdAcroForm.getFields()){
    System.out.println(pdField.getValue())
}

这是读取表单组件内的值的正确方法吗? 对此有什么建议吗? 我在哪里可以学习有关 pdfbox 的其他内容?


您拥有的代码应该可以工作。如果您确实希望对这些值进行某些操作,则可能需要使用其他一些方法。例如,您可以使用以下方式获取特定字段pdAcroForm.getField(<fieldName>):

PDField firstNameField = pdAcroForm.getField("firstName");
PDField lastNameField = pdAcroForm.getField("lastName");

注意PDField只是一个基类。您可以将事物转换为子类,以从中获取更多有趣的信息。例如:

PDCheckbox fullTimeSalary = (PDCheckbox) pdAcroForm.getField("fullTimeSalary");
if(fullTimeSalary.isChecked()) {
    log.debug("The person earns a full-time salary");
} else {
    log.debug("The person does not earn a full-time salary");
}

正如您所建议的,您可以在 apache pdfbox 网站上找到更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用pdfbox获取表单字段值 的相关文章

  • Grails 3.x bootRun 失败

    我正在尝试在 grails 3 1 11 中运行一个项目 但出现错误 失败 构建失败并出现异常 什么地方出了错 任务 bootRun 执行失败 进程 命令 C Program Files Java jdk1 8 0 111 bin java
  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • USB 上的 Autorun.inf 可以让它运行 pdf 吗?

    我在网上做了一些研究 我想我只是在寻找构象 由于 Microsoft 如何在 Vista 及更高版本中对自动运行设置安全性 从 USB 自动运行不再起作用 正确的 看起来它仍然会显示运行 exe 的选项 但由于某些奇怪的原因我无法让它运行
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • R Bookdown _bookdown.yml

    Bookdown 有很多配置选项 我发现很难理解如何知道一个选项是否存在 以及这些选项背后的逻辑 具体来说 我发现很难描述什么kind选项进入 bookdown yml鉴于至少还有其他两个地方可以说明选项 In output yml 函数调
  • 伊德里斯热切评价

    In Haskell 我可能会实施if像这样 if True x y x if False x y y spin 0 spin n spin n 1 This 行为符合我的预期 haskell gt if True spin 1000000
  • SCTP 是否像宣传的那样在 Linux 上工作?

    我计划将 SCTP 用于嵌入式 Linux 项目 有人对 SCTP 使用有一些评论吗 主要是一对多模式 它是否优于使用自制的基于 UDP 的等效解决方案 我控制网络环境和所有涉及的设备 所以兼容性不是问题 我广泛使用了 lksctp 发现它
  • 为什么使用 onclick 在 location.reload() 之后返回 false?

    我正在做一个JavaScript我使用该方法的应用程序位置 reload https developer mozilla org en US docs Web API Location reload 方法location reload 是在
  • 将 lambda 函数连接到 QProcess::error 时出错

    在下面的代码中 我想将 lambda 函数连接到 QProcess error 信号 void Updater start QProcess process QObject connect process QProcess error QP
  • 让 Java 应用程序在 Windows 上看起来像原生的 - 如何?

    是否可以使用 Java 创建在 Windows 上看起来原生的应用程序 我不在乎该解决方案是否可移植 因为我只打算针对 Windows 用户 如果这很重要的话 我正在使用 Scala 抱歉缺少详细信息 但我以前从未使用过 Java 所以我什
  • 自然语言处理:找到英语中的脏话吗?

    给定一组标记为词性的单词 我想找到那些在主流英语中属于猥亵内容的单词 我该怎么做 我是否应该列出一个巨大的列表 然后检查列表中是否存在任何内容 我应该尝试使用正则表达式来捕获单个根上的一堆变体吗 如果它更容易 我不想过滤掉 只是为了得到一个
  • 显示 Android Wear 风格的 AlertDialog

    我正在寻找一种在 Android Wear 的设置应用程序中重新创建警报对话框的方法 这是滑动到可解雇的 但相反 我得到的是这样的 只是一个准系统 Android 对话框 如何以Settings apk样式显示AlertDialog 我认为
  • 如何使用 moment.js 库获取时区列表?

    我需要创建所有实际世界时区的 列表 如何获取包含时区列表的数组 首先包括moment timezone与数据 然后你可以使用moment tz names https momentjs com timezone docs using tim
  • 检查序列容器在内存中是否连续

    有没有办法检查序列容器在内存中是否连续 就像是 include
  • VS 2017 中的团队成员团队实用程序部分

    In VS 2015我有这个可以安装一些签入策略 But in VS2017我找不到它 它去哪儿了 它是 Visual Studio Team Foundation Server Power Tools 的一部分 这些尚未针对 Visual
  • 将 Vulkan 与 SFML 结合使用?

    我目前使用 GLFW 进行窗口创建和用户输入 GLFW 只是让我们可以说 glfwWindowHint GLFW CLIENT API GLFW NO API 告诉 GLFW 不支持 OpenGL 它甚至提供了类似的功能 glfwCreat
  • 在 EF 6 中找不到 HasOne

    我对实体框架非常陌生 我正在尝试找出关系 我找到了这段代码 class MyContext DbContext public DbSet
  • 使用quickSort时出现stackoverflowerror,我可以增加堆栈和堆吗?

    java中可以增加栈和堆吗 我用的是BlueJ EDIT 这是代码 Quick Sort Method public static void quickSort int data int first int n int p n1 n2 if
  • iText 样式将 HTML 解析为 PDF

    我的 iText 遇到问题 我已经点击了这个链接 如何将html页面导出为pdf格式 https stackoverflow com questions 10493837 how to export html page to pdf for
  • 错误:无法更改或删除列“x”,因为它已启用全文搜索

    我正在重构旧数据库并删除不再使用的列 数据库曾经有全文索引 因此 某些列被标记为全文 我怎样才能删除它们 Notes 数据库是 MS SQL Server Express 2008 不再安装全文搜索服务 Edit 我努力了 ALTER FU
  • 任务':app:dexDebug'执行失败

    这是我的 build gradle 文件 apply plugin com android application android compileSdkVersion 20 buildToolsVersion 20 0 0 defaultC
  • 使用 GDataXML 获取 XML 响应值

    在 HTTP Post 之后 我检索如下 xml 响应
  • 无法将 附加到非 ClientBehaviorHolder 父级

    我使用 JSF 2 primefaces 4 0 并尝试使用 DataTable In Cell Editing 因为它是在 primefaces 展示中生成的 但我有一个错误 尽管我复制了展示中显示的相同示例 错误是
  • 使用pdfbox获取表单字段值

    我是第一次使用 pdfbox 现在我正在网站上阅读一些内容Pdf http pdfbox apache org 总结一下我有一个这样的pdf 只是我的文件有很多不同的组件 文本字段 单选按钮 复选框 对于此 pdf 我必须阅读这些值 Mau