解决:PDFBox报的java.io.IOException: Missing root object specification in trailer
文章目录
- 问题描述
- 原因分析
- 解决方案
问题描述
使用pdfbox类库操作pdf文件时,遇到下面的报错信息:
java.io.IOException: Missing root object specification in trailer
PDFBox参考:
https://pdfbox.apache.org/
Apache PDFBox 库是一个开源的用于处理 PDF 文档的 Java 工具。
原因分析
目前看下来有两种原因:
- pdf文件格式有损坏,无法读取
- 使用的pdfbox版本有相关漏洞
解决方案
针对上面的 原因一,检查pdf文件格式,再操作。
针对上面的 原因二,可以通过升级pdfbox版本来解决:
Apache PDFBox 2.0.6 发布了,这个版本是基于 2.0.5 版本的增量式 bug 修复版本,包含了几个修复和小改进,在下面的release notes中就可以看到,修复了该问题:
Apache PDFBox 2.0.6 Release Notes
内容如下:
Sub-task
[PDFBOX-3302] - Explicit support for certification signatures
Bug
[PDFBOX-3313] - Java 9 InaccessibleObjectException
[PDFBOX-3318] - IllegalArgumentException in PDPageTree constructor: root cannot be null
[PDFBOX-3347] - COSName parsing doesn't handle ISO-8859-1 encoded bytes
[PDFBOX-3519] - COSName is not ascii
[PDFBOX-3545] - COSParser.parseXref failing if startXrefOffset over pdf size
[PDFBOX-3687] - PDFBox doesn't respect different setting of /DA at PDAnnotationWidget level to /DA at PDField level
[PDFBOX-3717] - java.io.IOException: Missing root object specification in trailer
[PDFBOX-3723] - FDFField.getValue() doesn't return the values in line with the Javadoc.
[PDFBOX-3724] - Wrong size in rendering of some artifacts
[PDFBOX-3726] - NPE when setting the field value in an AcroForm and the NormalAppearance entry exists but is COSNull
[PDFBOX-3727] - "premature EOF, image will be incomplete"
[PDFBOX-3728] - org.apache.pdfbox.cos.COSDictionary cannot be cast to org.apache.pdfbox.cos.COSStream
[PDFBOX-3731] - IOException: Found Token[kind=NAME, text=bind] but expected ND at offset 91
[PDFBOX-3732] - IllegalArgumentException when refreshing an appearance and no font resources are defined
[PDFBOX-3733] - image added to pdf by tool AddImageToPDF is turn-overed
[PDFBOX-3738] - Signature not visible on Acrobat
[PDFBOX-3739] - ImageWriterIterator.next() and ImageReaderIterator.next() can return null
[PDFBOX-3740] - Standard 14 and Encoding
[PDFBOX-3741] - usage of default colorspace not checked by preflight
[PDFBOX-3742] - Unknown dir object c='>' cInt=62 peek='>' peekInt=62
[PDFBOX-3743] - Running GC between signing and saving document closes stream
[PDFBOX-3745] - Wrong character width
[PDFBOX-3747] - CmapSubtable#getCharCodes provides values in random order
[PDFBOX-3748] - java.lang.UnsupportedOperationException: Kerning table version 0 format 2 not yet supported.
[PDFBOX-3750] - java.util.zip.DataFormatException when parsing a PDF
[PDFBOX-3751] - Flattening a pdf with refreshAppearances set to true causes a NullPointerException
[PDFBOX-3752] - PDVariableText text color changes to be the same as the background color after flattening
[PDFBOX-3753] - setting a RadioButton with export values does not update the appearance
[PDFBOX-3754] - Skip << >> in type1 font parser
[PDFBOX-3755] - ClassCastException in PDColor constructor: org.apache.pdfbox.cos.COSNull cannot be cast to org.apache.pdfbox.cos.COSNumber
[PDFBOX-3757] - TTFSubsetter scrambles PostScript names and unicode codepoints when subset contains diaeresis
[PDFBOX-3761] - Exception in thread "main" java.lang.NullPointerException
[PDFBOX-3769] - Cannot read JBIG2 image when JBIG2-Image-Decoder is in path
[PDFBOX-3775] - Merge documents fails due to IllegalArgumentException
[PDFBOX-3781] - Existing AcroForm default resources is overwritten by signing code
[PDFBOX-3783] - java.io.IOException: Expected root dictionary, but got this: COSNull{}
[PDFBOX-3784] - Inline image incorrectly parsed
[PDFBOX-3788] - java.lang.RuntimeException: java.io.IOException: Catalog cannot be found
[PDFBOX-3789] - Some text missing in rendering
[PDFBOX-3791] - Long rendering time
[PDFBOX-3837] - PDFBox does not maintain the font appearence of a field if it appears severraly in a PDF Form
Improvement
[PDFBOX-2684] - Javadoc for COSBase.setNeedToBeUpdate
[PDFBOX-3614] - Directly use the BouncyCastleProvider rather than installing it
[PDFBOX-3716] - Read images from byte array
[PDFBOX-3722] - make font cache error message less scary
[PDFBOX-3730] - Encapsulate outputStream into BufferedOutputStream in PDDocument.save()
[PDFBOX-3763] - Optimize SampledImageReader.getStencilImage()
[PDFBOX-3768] - Optimize SampledImageReader.from1Bit()
[PDFBOX-3770] - provide set of page indexes that have page label ranges
[PDFBOX-3772] - Add COSBoolean(false) as option in PDDocumentCatalog's getOpenAction
[PDFBOX-3779] - Add dpi and border parameter to PrintPDF command line utility
相关文章:
解决:PDFBox报的java.io.IOException: Missing root object specification in trailer
文章目录问题描述原因分析解决方案问题描述 使用pdfbox类库操作pdf文件时,遇到下面的报错信息: java.io.IOException: Missing root object specification in trailer PDFBox参考: https://pdfbox.apache.org/ Apache PDFBox 库是一个开源的…...
MAC OSX安装Python环境 + Visual Studio Code
MAC上开发python怎么能少得了python3环境呢,而安装python3环境的方式也有多种,这里仅选用并记录本人认为比较方便的方式 安装Homebrew Homebrew是macOS 缺失的软件包管理器, 使用它可以在MAC上安装很多没有预装的东西,详细说明可…...
音乐 APP 用户争夺战,火山引擎 VeDI 助力用户体验升级!
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 国内数字音乐市场正在保持稳定增长。 根据华经产业研究院数据报告显示,2020 年数字音乐市场规模为 357.3 亿元,到 2022 年市场规模已增长至 482.7 …...
CAP和BASE理论
CAP理论CAP是 Consistency、Availability、Partition tolerance 三个词语的缩写,分别表示一致性、可用性、分区容忍性。它指出一个分布式计算系统不可能同时满足以下三点:• 一致性(Consistency) :等同于所有节点访问同…...
基于商品理解的成交能力和成交满意度优化在Lazada的实践
作者:马蕊 Lazada推荐算法团队 在Lazada各域推荐场景中,既有优质商品优质卖家不断涌现带来的机会,也有商品质量参差带来的问题。如何才能为用户提供更好的体验,对卖家变化行为进行正向激励呢?下面本文将为大家分享我们…...
idea推送镜像到desktop报错:Cannot run program “docker-credential-desktop“ 系统找不到指定的文件。
windows Docker 搭建仓库 打开docker desktop 。 打开windows cmd窗口或powershell窗口。 输入"docker run -d -p 5000:5000 --name test registry:2 "运行一个名字叫test的registry容器。 idea配置springboot项目的docker插件 在pom.xml中的plugins中加入下面代码…...
hive开窗函数
hive开窗函数 窗口函数 数据准备 1 jx 20 2 zx 24 3 yx 18 4 wz 10 5 yy 34 6 wy 25create table t (> id int,> name string,> age int> )> row format delimited fields terminated by ; load data inpath /data/data.txt into table t;ROW_NUMBER ROW_N…...
安全多方计算系列笔记1——前世今生
这一系列笔记参考了绿盟科技研究通讯的安全多方计算文章,及其他。 首先看定义:在不泄露参与方原始输入数据的前提下,允许分布式参与方合作计算任意函数,输出准确的计算结果。 起源 安全多方计算问题及解首先由姚期智(…...
16- 梯度提升分类树GBDT (梯度下降优化) (算法)
梯度提升算法 from sklearn.ensemble import GradientBoostingClassifier clf GradientBoostingClassifier(subsample0.8,learning_rate 0.005) clf.fit(X_train,y_train) 1、交叉熵 1.1、信息熵 构建好一颗树,数据变的有顺序了(构建前,…...
SpringCloud+Nacos+Gateway
SpringCloudNacosGatewaySpringBoot整合GatewayNacos一. 环境准备1. 版本环境2. 服务环境二. 实战1.创建用户服务2.创建订单服务3.创建网关服务4.测试三. 避坑指南问题1--503问题问题2--网关服务启动报错SpringBoot整合GatewayNacos 本篇文章只演示通过gateway网关服务访问其他…...
高通开发系列 - linux kernel内核升级msm-3.18升至msm-4.9(2)
By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 返回高通开发系列 - 总目录 前面我们升级了msm-4.9内核系统正常启动了,文件系统也正常工作,但那是使用了老基线的文件系统,其yocto…...
Spring依赖注入与反转控制到底是个啥?
目录 1. 引言 2. 管中窥豹 3.1 Spring 依赖注入 3.2 Bean 的依赖注入方式有两种 4. 总结 1. 引言 此文目的是用通俗易懂的语言讲清楚什么是依赖注入与反转控制,在看了大量的博客文章后归纳总结,便于后续巩固!我相信,大多数…...
Linux Shell脚本讲解
目录 Shell脚本基础 Shell脚本组成 Shell脚本工作方式 编写简单的Shell脚本 Shell脚本参数 Shell脚本接收参数 Shell脚本判断用户参数 文件测试与逻辑测试语句 整数测试比较语句 字符串比较语句 Shell流程控制 if条件判断语句 单分支 双分支 多分支 for循环语句…...
Linux:用户空间非法指针coredump简析
1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. 背景 本文分析基于 ARM32 架构,Linux-4.14 内核代码。 3. 问题分析 3.1 测试范例 void main(void) {*(int *)0 8; }运行程序会 …...
带你玩转Jetson之Deepstream简明教程(四)DeepstreamApp如何使用以及用于工程验证。
1.DeepstreamApp是什么? 如果你安装完毕deepstream整体框架,会在你的系统执行目录内有可执行文件,文件名字是deepstream-app。这是一个可执行脚本文件,通过deepstream框架中的代码在安装的时候编译后install到系统根目录内。 此脚…...
快速搭建个人在线书库,随时随地畅享阅读!
前边我们利用NAS部署了个人的导航页、小说站、云笔记,今天,我们再看看怎么部署一个个人的在线书库。 相信很多朋友都在自己的电脑中收藏了大量的PDF、MOBI等格式的电子书籍,但是一旦换了一台设备,要么是无法翻阅,要么…...
电子纸墨水屏的现实应用场景
电子纸挺好个东西,大家都把注意力集中在商超场景 其实还有更多有趣的场景方案可用,价值也不小,比如: 一、仓库场景 通过亮灯拣选,提高仓库作业效率 二、仓库循环使用标签 做NFC类发卡式应用,替代传统纸…...
常量const、引用、指针的大杂烩
文章目录1 普通引用1.1 对普通值的普通引用1.2 对常量值的普通引用1.3 对普通指针的普通引用1.4 对常量指针的普通引用1.5 对指针常量的普通引用1.6 对指向常量的指针常量的普通引用2 常量引用2.1 对普通值的常量引用2.2 对常量值的常量引用2.3 对普通指针的常量引用2.4 对常量…...
宝塔搭建实战php开源likeadmin通用管理移动端uniapp源码(四)
大家好啊,我是测评君,欢迎来到web测评。 上一期给大家分享了pc端的部署方式,今天来给大家分享uniapp端在本地搭建,与打包发布到宝塔的方法。感兴趣的朋友可以自行下载学习。 技术架构 vscode node16 vue3 uniapp vite types…...
Hive的分区表与分桶表内部表外部表
文章目录1 Hive分区表1.1 Hive分区表的概念?1.1.1 分区表注意事项1.2 分区表物理存储结构1.3 分区表使用场景1.4 静态分区表是什么?1.4.1 静态分区表案例1.4.2 分区表练习一1.4.3 分区操作1.5 动态分区表是什么?1.5.1 动态态分区表案例&#…...
和数集团打造《神念无界:源起山海》,诠释链游领域创新与责任
首先,根据网上资料显示,一部《传奇》,二十年热血依旧。 《传奇》所缔造的成绩,承载的是多少人的青春回忆,《传奇》无疑已经在游戏史上写下了浓墨重彩的一笔。 相比《传奇》及背后的研发运营公司娱美德名声大噪&#x…...
小白入门模拟IC设计,如何快速学习?
众所周知,模拟电路很难学。以最普遍的晶体管来说,我们分析它的时候必须首先分析直流偏置,其次在分析交流输出电压。可以说,确定工作点就是一项相当麻烦的工作(实际中来说),晶体管的参数多、参数…...
51单片机——中断系统之外部中断实验,小白讲解,相互学习
中断介绍 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功能之一,是我们学些单片机必须要掌握的。 为了更容易的理解中断概念&…...
如何设计一个秒杀系统
秒杀系统要如何设计? 前言 高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。 秒杀一般出现在商城的促销活动中,指定…...
厄瓜多尔公司注册方案
简介: 经济概况与商机 厄瓜多尔是世界上第74大国家,是南美西部国家,与哥伦比亚,秘鲁和太平洋接壤。厄瓜多尔地处世界中心,地理位置优越,地理位置优越-赤道线零纬度,使其成为通往太平洋的理想枢…...
安全渗透环境准备(工具下载)
数据来源 01 一些VM虚拟机的安装 攻击机kali: kali官网 渗透测试工具Kali Linux安装与使用 kali汉化 虚拟机网络建议设置成NAT模式,桥接有时不稳定。 靶机OWASP_Broken_Web_Apps: 迅雷下载 网盘下载 安装教程 开机之后需要登录&am…...
118.(leaflet篇)leaflet空间判断-点与geojson面图层的空间关系(turf实现)
听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>...
目标检测与目标跟踪算法技术汇总
现如今chatgpt的爆火,我也使用了一段时间,问了许多关于人工智能技术的问题,基本是它能够回答了大部分的原理的,至于其人工智能涉及到的算法以及网络,考虑到也没有图,可能在给出这类回答上,是不太…...
Linux 系统启动过程
过去几十年,公用事业行业发生了重大变化。能源需求的转变导致企业利润率的波动,但不是运营成本的波动。 许多公用事业公司通过后勤部门流程自动化来削减成本,比如招采流程自动化。 在招采活动中,人工招采会产生盲点。由于公共事业…...
【每日一题Day118】LC1124表现良好的最长时间段 | 前缀和+单调栈/哈希表
表现良好的最长时间段【LC1124】 给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」,意味在这段时间内&#…...
房屋在线设计工具/5g站长工具seo综合查询
1.1. 匿名函数匿名函数的命名规则: 用lamdba 关键字标识,冒号(:)左侧表示函数接收的参数(a,b) ,冒号(:)右侧表示函数的返回值(ab)。 因为lamdba在创建时不需要命名,所以,叫匿名函数add lambda a, b: a * bprint(add…...
wordpress screen/成都网站建设方案优化
编译的过程 宏定义符号的预处理,即宏替换,还有#include的内容给copy进来,#if等条件编译不满足项的也去掉。编译:xx.c -> xx.s(词法分析,语法分析,得到的汇编程序) -> xx.o目标代码(这个本…...
网站蜘蛛爬行统计/网络工程师
1、文件锁 如果对该表的更新或插入的操作,都会经过一个统一的文件,这种方式是可以解决的多进程并发的问题; 实现方式如下: public static function cbInventoryReserve() {$LOCK_FILE_PATH $_SERVER[DOCUMENT_ROOT]."wmsinv…...
wordpress 安卓 管理系统/中国新闻网最新消息
我首先用的是eclipse MARS2,发现没有servers选项。查阅博客发现版本不对,遂去下了eclipse Juno 查阅juno的readme.html。发现juno是Release 4.2.0 Last revised June 8th, 2012;Mars是classic 具体版本信息:点击打开链接 Java E…...
设计师可以做兼职的网站/种子搜索引擎
点击上方“蓝色字”可关注我们!暴走时评:日本最大的海运公司之一Nippon Yusen K.K.(NYK)正计划发行自己的数字货币。数字货币将提供给员工,以简化管理和运输,让员工更容易兑换当地货币。据称这种货币将与美…...
有口碑的番禺网站建设/软文通
http://alligator.blog.51cto.com/36993/101190...