引入jar包
jar包的信息如下,请自己选择maven或者gradle亦或者其他构建工具的方式:
第一个
groupId:org.bouncycastle
artifactId:bcpkix-jdk15on
version:1.60
第二个
groupId:com.itextpdf
artifactId:itextpdf
version:5.5.10
代码实现
package com.cell.test;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfWriter;
import org.apache.pdfbox.io.IOUtils;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/**
* 只读方式打开 PDF 文件
*
* @author zhaokai
* @date 2019-10-12
*/
public class ReadonlyOpenPdfFileTest {
public static void main(String[] args) {
PdfReader pdfReader = null;
PdfStamper pdfStamper = null;
OutputStream os = null;
try {
String pdfUrl = "/Users/zhaokai/Desktop/test.pdf";
String resultPdfUrl = "/Users/zhaokai/Desktop/result.pdf";
pdfReader = new PdfReader(pdfUrl);
os = new FileOutputStream(resultPdfUrl);
pdfStamper = new PdfStamper(pdfReader, os);
PdfWriter writer = pdfStamper.getWriter();
writer.setEncryption(null, null, PdfWriter.ALLOW_ASSEMBLY, PdfWriter.STANDARD_ENCRYPTION_128);
} catch (IOException | DocumentException e) {
e.printStackTrace();
} finally {
try {
if (pdfStamper != null) {
pdfStamper.close();
}
if (pdfReader != null) {
pdfReader.close();
}
} catch (DocumentException | IOException e) {
e.printStackTrace();
}
IOUtils.closeQuietly(os);
}
}
}
效果截图
未加密
文本
图片
加密后
文本
点击【编辑】需要输入口令,并且没有复制等限制了的功能了。
图片
可以看到没有之前的复制和另存功能了