我正在使用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

10-08 00:07