Python - 创建一个多层PDF

时间:2015-12-04 21:40:22

标签: python pdf reportlab pypdf adobe-pdf-library

有没有办法使用Python创建多层PDF。但不合并。

我认为多层PDF意味着页面中有多个图层,我可以选择在Acrobat中显示哪个图层。

以下是我发现的有关分层PDF的文档: http://www.open.ac.uk/opencetl/files/opencetl/file/ecms/web-content/Multi-pdf-how-to-%20file.pdf

分层PDF的一个例子: http://www.talkgraphics.com/attachment.php?s=1901864ddbe7b63f672440daffc3907e&attachmentid=76844&d=1285324919

2 个答案:

答案 0 :(得分:2)

您可以使用PyPDF2覆盖来自不同PDF文件的网页,生成另一个未展平的PDF文件。

您可以找到添加水印here的好例子。请查看“覆盖页面”部分中的示例和说明。

答案 1 :(得分:0)

据我所知,Reportlab和Pypdf都没有机制来创建实现图层(或可选内容组)所必需的标记内容块。

我使用IronPython和Datalogics .Net接口创建了这样的APDFL。 还有一个Java接口,所以你可以用Jython做同样的事情。

该技术基本上是您为图层创建OptionalContentGroup,然后将图层中所需的内容添加到容器中,并将Container的OptionalContentMembershipDict设置为连接两者的OptionalContentMemberDict。

ocg = PDFL.OptionalContentGroup(doc,"Labels")
doc.DefaultOptionalContentConfig.Order.Insert(0,PDFL.OptionalContentOrderLeaf(ocg))
labelContainer.OptionalContentMembershipDict = PDFL.OptionalContentMembershipDict(doc,[ocg,],PDFL.VisibilityPolicy.AnyOn)

其中labelContainer是我添加到我页面内容的容器元素。

披露:我在Datalogics工作。