2017-02-23 185 views
0

我知道Doc.SetOCGOrder()等,但很显然,Acrobat API不提供删除图层(也称为可选内容组,ocgs)的方法,只是为了将它们隐藏起来而不让用户通过脚本访问它们。如何以编程方式删除PDF图层?

我不是被迫使用Acrobat,实际上我更喜欢使用FOSS解决方案(或者至少是免费软件)。 编辑another post使用,这是不幸的是不自由。有没有办法将该行为移植到Acrobat的JS或?基本上,答案似乎循环遍历每个页面的内容,这似乎包括图层。

(关于合并,我注意到pdftk合并多个文件时,不会删除层,因此可以简单pdftk A=input.pdf B=input.pdf cat A1-end output output.pdf。)

+0

WIP-想法:让无形层,然后再使用'pdftk'合并。但是,这确实会删除图层内容吗? –

+0

您是否想要将图层的内容与其定义一起删除,还是只想删除该图层中的信息?此外,您对哪些编程环境感兴趣的解决方案? – mkl

+0

@mkl我想要真正删除图层的内容。否则,我可以使用Acrobat的API并更改属性(尽管我不确定是否必须简单地使用“locked”和“initState”或修改/清空“意图” - 实际上,https:// www。 uvsar.com/projects/acrobat/indesignfixups/建议我不得不通过'setOCGOrder'来“移除”它)。 –

回答

0

我迄今为止的做法:对于通过GetOCGs()获得相关层设置locked=true两者initState=falsestate=false。然后使用SetOCGOrder()从图层视图中移除图层。不幸的是,这并不完美,因为至少在Acrobat DC中,我仍然可以在图层面板中选择“显示所有图层”,它仍然显示图层。现在可以合并所有图层,但我也没有找到通过编程实现该选项的选项,也不会实际删除隐藏图层的元素。

0

您不能以编程方式执行此操作,但您可以创建一个操作,该操作将使用Adobe Acrobat处理充满PDF文件的文件夹。设置动作以使用PDF优化器丢弃隐藏的图层并展平可见的图层。看图形。

enter image description here