[英]iText - read PDFs created with an unknown random owner password
在執行此代碼時,我收到以下異常:
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) {
...
}
}
例外:
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
。
這里似乎有一個解決方法,使iText忽略密碼與免責聲明 :
我通過執行以下代碼將法律問題留給您 。
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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.