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();

1、我不清楚,没做过相关东西
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的几个问题,是高手的进。的主要内容,如果未能解决你的问题,请参考以下文章

关于Java Swing 中JTable的问题,高手指教!

200分,C++网络通信,高手,工作过的进!!

无论是菜鸟还是高手,这招PDF转Word技巧必须Get

求一个会JAVA的高手告诉我怎么解决超出字符串65535长度的解决办法

用java怎么获得一张图片上的一个文字的坐标点 求高手解答

C++语法高手进