首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用未知随机所有者密码创建的iText读取PDF

使用未知随机所有者密码创建的iText读取PDF
EN

Stack Overflow用户
提问于 2016-03-23 10:58:37
回答 1查看 4.2K关注 0票数 2

在超出此代码时,我将得到以下异常:

代码语言:javascript
运行
复制
public byte[] watermarking(byte[] orig) throws IOException {
        PdfReader pdfReader = new PdfReader(orig);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfStamper pdfStamper = null;

        try {
            pdfStamper = new PdfStamper(pdfReader, baos); //exc here
            ...
            }
            ...
        } catch (DocumentException var8) {
            ...
        }
    }

例外:

代码语言:javascript
运行
复制
11:43:11,094 ERROR [de.mlp.xbg.pa.rest.SessionRR] (http-/127.0.0.1:8081-6) PdfReader not opened with owner password: java.lang.IllegalArgumentException: PdfReader not opened with owner password

关于这个主题,我检查了其他线程,似乎最简单的解决方案是添加PdfReader.unethicalreading = true;

但是,我不得不使用iText 2.1.7或更高版本(__com.lowagie iText),而不是iText 5.0.0或更高版本(__com.itextpdf iText)。库的旧版本中不存在PdfReader.unethicalreading

EN

Stack Overflow用户

回答已采纳

发布于 2016-03-23 11:11:35

这里似乎有一个解决办法,让iText用免责声明忽略密码

,我通过执行下面的代码将法律问题留给您。

代码语言:javascript
运行
复制
public static PdfReader unlockPdf(PdfReader reader) {
    if (reader == null) {
        return reader;
    }
    try {
        java.lang.reflect.Field f = reader.getClass().getDeclaredField("encrypted");
        f.setAccessible(true);
        f.set(reader, false);
    } catch (Exception e) { /* ignore */ }
    return reader;
}
票数 8
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36176286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档