JAVA操作PDF的几个问题,是高手的进。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA操作PDF的几个问题,是高手的进。相关的知识,希望对你有一定的参考价值。
1.通过iText怎样对PDF加密(只是普通加密,非认证加密)。
2.在JSP页面中显示PDF时,怎样禁止右键菜单(只禁止右键菜单中的“打印”选项也行)。
3.在后台或在JSP页面中怎样启用/禁用PDF的“打印”功能(打印时不弹出属性对话框)。
看了iText的文档和api总算是实现了大部份的功能,下面就把实现CODE贴出来和大家分亨一下。。
第一种方法:
//屏蔽PDF菜单栏、工具栏(PdfWriter.HideMenubar | PdfWriter.HideToolbar | PdfWriter.HideWindowUI)
reader = new PdfReader(inputPath);
reader.setViewerPreferences(PdfWriter.HideMenubar);
//设置加密权限
PdfEncryptor.encrypt(reader,new FileOutputStream(outFile), readPassword.getBytes(), writePassword.getBytes(), 0, false);
//PdfWriter.AllowAssembly |PdfWriter.AllowFillIn|PdfWriter.AllowScreenReaders
上面的代码中被注释的代码是PDF的权限设置,将注释的代码替换0处,就可以实现对PDF文件权限的控制了。
第二种方法:
PdfReader reader = new PdfReader(annexPath);
PdfStamper stamper = new PdfStamper(reader, baos);
PdfWriter writer = stamper.getWriter();
stamper.setEncryption(null, "wwwwww".getBytes(), 0, false);
// 隐藏菜单栏、工具栏
writer.setViewerPreferences(PdfWriter.HideMenubar);
stamper.close();
2、通过js可以实现禁止右键行为
3、页面无法打印好像实现不了,因为浏览器有打印功能会将页面打印出来 参考技术A 加密必须在document.open()之前进行设置。
public void setEncryption(boolean strength, String password,
String ownwerPassWord, int permissions);
strength 是PdfWriter.strength40bits,PdfWriter.strength128bits,常量之一
password和ownwerPassWord可以为空或0的
permissions也是PdfWriter的常量PdfWriter.Allow开头的好几个。
以上是关于JAVA操作PDF的几个问题,是高手的进。的主要内容,如果未能解决你的问题,请参考以下文章