我正在使用pd4ml创建pdf文档,但是我不希望用户能够使用ms word 2013编辑这些文档。
到目前为止,这是我尝试过的
pd4ml = new PD4ML();
pd4ml.setPageSize(PD4Constants.A4);
pd4ml.setPageInsetsMM(new Insets(TOPVALUE, LEFTVALUE, BOTTOMVALUE, RIGHTVALUE));
pd4ml.setHtmlWidth(USERSPACEWIDTH);
pd4ml.enableImgSplit(false);
pd4ml.disableHyperlinks();
//some more code
pd4ml.render(arrayOfURLs, byteArrayOutputStream);
//some more code
然后我读了PD4ML API documentation并添加了这行代码
pd4ml.generatePdfa(true);
我认为当我在Adobe Reader中打开文档并看到以下消息时,问题就解决了:此文件声称符合pdf / a标准,并且已被只读打开”,但是它当然仍然是可编辑的;因此,在pd4ml中如何完成此操作的任何建议,或对我可以用来添加此文件的api的任何引用对生成的pdf的限制将受到欢迎。
最佳答案
试过这个吗?
如果从文档中顺便说一句:
AllowModify
public static final int AllowModify
Document access permission (bit 4, value = 8).
Modify the contents of the document by operations other than those controlled by bits 6, 9, and 11.
See Also:
PD4ML.setPermissions(String, int, boolean), Constant Field Values
另外,您可能想要执行以下操作:
pd4ml.setPermissions("", 0xffffffff ^ PD4Constants.AllowModify, false);
禁用修改。
此处更多信息:http://pd4ml.com/cookbook/pd4ml_pdf_security.htm