PDFBox IOException:文件结尾,预期行

2024-01-22

我目前正在尝试使用 PDFBox 和 Selenium 从已上传并通过链接访问的 PDF 中获取文本。 我用这个作为来源:http://www.seleniumeasy.com/selenium-tutorials/how-to-extract-pdf-text-and-verify-using-selenium-webdriver-java http://www.seleniumeasy.com/selenium-tutorials/how-to-extract-pdf-text-and-verify-using-selenium-webdriver-java

public String function(String pdf_url) {
    PDFTextStripper pdfStripper = null;
    PDDocument pDoc;
    COSDocument cDoc;
    String parsedText = "";
    try {
        URL url = new URL(pdf_url);
        BufferedInputStream file = new BufferedInputStream(url.openStream());
        PDFParser parser = new PDFParser(file);
        parser.parse();
        cDoc = parser.getDocument();
        pdfStripper = new PDFTextStripper();
        pdfStripper.setStartPage(1);
        pdfStripper.setEndPage(1);

        pDoc = new PDDocument(cDoc);
        parsedText = pdfStripper.getText(pDoc);

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

    return parsedText;
}

Error: End-of-File expected line
at org.apache.pdfbox.pdfparser.BaseParser.readLine(BaseParser.java:1519)
at org.apache.pdfbox.pdfparser.PDFParser.parseHeader(PDFParser.java:372)
at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:186)
at scripts.Script.grabPDF_Text(Script.java:94)
at scripts.Script.main(Script.java:817)

为什么我会收到此错误?


这是您要求使用 PDFURL 共享的示例

string PDFURL = "https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf";
function(PDFURL1);

public String function(String pdf_url)
{
 //Exact same code as yours
}

为了使用 PDF 作为本地文件,URL 和 BufferedInputStream 需要替换为

 File file = new File(pdf_url);
 PDFParser parser = new PDFParser(new FileInputStream(file));

希望这可以帮助

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

PDFBox IOException:文件结尾,预期行 的相关文章

  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • 如何设置代码以便在文本框中单击鼠标输入信息? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 在 Visual Basic 2010 中 我有两个文本框和一个数字键盘 每次我单击一个数字时 该数字都会显示在两个文本框中 我该如何做到这
  • Visual Studio 2010 的源代码大纲窗口

    对于 Visual Studio 2008 有一个小而伟大的插件 源大纲 on Codeplex http sourcecodeoutliner codeplex com http sourcecodeoutliner codeplex c
  • SVG Batik 根元素命名空间与请求的不匹配

    几周前 它在我的 SVG 上运行得很好 但不知何故它停止了工作 我不知道原因 因为在服务器上触发的错误没有帮助 当我将 svg 文件传输到 pdf 时会发生这种情况 Root element namespace does not match
  • 如何在关闭弹出窗口时调用函数

    我正在调用Javascriptwindow open 函数在弹出窗口中加载另一个 url 当用户关闭弹出窗口时 我想要MyThanks 要调用的函数 我怎样才能做到这一点 我的脚本
  • WTF form.validate_on_submit() 不起作用

    我有以下代码 并且正在提交表单 当我点击提交按钮时 我的表单验证会打印出来False 我已经检查并确保我包含了不同帖子中的所有内容 但我无法对其进行验证 我做错了什么吗 app route index html methods GET PO
  • 如何将 Javascript 对象键大写?

    有人知道有什么好的方法可以扭转这个吗 var obj key1 value1 key2 value2 key3 value3 key4 value4 into var obj Key1 value1 Key2 value2 Key3 val
  • 如何向 SQLite 3 表中插入多行? [复制]

    这个问题在这里已经有答案了 在 MySQL 中我会使用 INSERT INTO mytable col1 col2 VALUES 1 aaa 2 bbb 但这会导致 SQLite 中出现错误 SQLite 的正确语法是什么 之前已经在这里回
  • 使用 ES6 装饰器时出现意外的标记“@”

    我有一个 React 项目设置 我正在尝试将 MobX 合并到其中 这样我就必须使用装饰器 即 observable 当我这样做时 我收到以下错误 https github com mobxjs mobx https github com
  • 隐藏 Web API 响应的属性

    我想隐藏Modifiedby Modifieddate and Createddate来自 Web API 响应的属性 我尝试使用 JsonOgnore IgnoreDataMember 但没有工作 ModelMetadataType ty
  • 为什么 Visual Studio 不允许我在 enable_if 中使用模板化的 constexpr 函数?

    因此 我将其归结为最小的 完整的 可验证的示例 并且 Visual Studio 2015 似乎不允许我使用模板化的 constexpr函数在一个enable if 例如 template
  • 使用 AutoFixture 创建递归数据结构的固定装置

    我正在开发一个项目 其中有一些递归数据结构 我想为其创建一个固定装置 数据结构是XmlCommandElement 它有一个单一的方法ToCommand转换XmlCommandElement to Command 树上的每个节点都可以是Xm
  • 如何在迭代字典时从字典中删除项目?

    我可以在迭代 Python 字典时删除其中的项目吗 我想从字典中删除不满足特定条件的元素 而不是创建一个全新的字典 以下是一个好的解决方案 还是有更好的方法 for k v in mydict items if k val del mydi
  • PHP DateInterval 与 DateTime 具有可比性吗?

    我发现 PHP 中的 DateTime 对象可以与另一个对象进行比较 因为 gt 和 和 DateInterval 一样吗 当我试图回答这个问题时 我发现了一些奇怪的事情
  • wx.Python:在多个面板之间传递控制

    我是 wxPython 的新手 并且研究过类似的问题 但无法具体找到我的问题的答案 我正在创建两个带有分离器的面板 每个面板都有许多小部件 我希望一个面板中的小部件控制另一个面板的某些属性 反之亦然 在这个例子中 我试图改变背景RightP
  • ReLU 没有学习处理负输入 Keras / Tensorflow

    我希望我的神经网络将负值转换为正值 理论上 这可以使用 ReLU 函数和 1 个节点来完成 该节点将输入权重学习为 1 因此负输入乘以 1 正输入 它只是继续输出 0 代码如下 我使用 1 作为输入值 看看它是否可以至少在单个输入上进行学习
  • 更改我的项目文件不会更改 Docker 计算机内的文件

    我正在尝试使用 Docker 来改进我的工作流程 我安装了 适用于 Windows 的 Docker 工具箱 https docs docker com engine getstarted step one 在我的 Windows 10 家
  • 在Python中,可以在不使用继承的情况下实现mixin行为吗?

    Python 中是否有一种合理的方法来实现类似于 Ruby 中的 mixin 行为 即不使用继承 class Mixin object def b self print b def c self print c class Foo obje
  • JavaPlot 和 gnuplot

    我正在拼命地努力让 Java 和 gnuplot 更好地发挥作用 我已经开始使用JavaPlot并将 jar 添加到类路径 使用 Eclipse 我还下载了 gnuplot 并将其放在安全的地方 第一个问题 所有例子都由JavaPlot假设
  • boost::filesystem::directory_iterator 是否因删除而失效?

    我正在遍历一个目录 当某个项目符合某些条件时 我将其删除 我可以在循环内安全地执行此操作 还是必须将路径保存在数组中并稍后删除 我没有找到相关信息boost 文件系统文档 http www boost org doc libs 1 52 0
  • PDFBox IOException:文件结尾,预期行

    我目前正在尝试使用 PDFBox 和 Selenium 从已上传并通过链接访问的 PDF 中获取文本 我用这个作为来源 http www seleniumeasy com selenium tutorials how to extract