2015-12-04 63 views
0

有没有一种方法来使用Python创建一个多层的PDF。但不合并。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

+0

首先记录_multi层PDF_并与我们分享这些信息。 –

+0

@DirkHorsten我添加了一个关于多层PDF的文档。谢谢! –

回答

0

从我可以告诉,既不ReportLab的也不Pypdf有机制来创建的块标记为实现图层(或可选内容组)所必需的内容。

我已经创建了这样的APDFL使用IronPython和Datalogics .Net接口。 还有一个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工作。

1

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

你可以找到一个很好的例子添加水印here。查看“Overlaying Pages”部分中的示例和解释。