2010-09-15 88 views
0

我想叠加两个pdf页面;一个在另一个之上。我正在使用Cocoa和PDFKit框架。当我将第二页叠加到第一页上时,第二页完全覆盖第一页的内容(因此第一页不再可见)。有没有办法改变第二页的透明度,使其背景完全透明,以便它下面的页面可见?叠加PDF页面

谢谢。

编辑:这是我的方法。创建包含另一个PDFPage的实例的PDFPage的子类,并在以下PDFPage类的方法中绘制叠加的页面。

- (void)drawWithBox:(PDFDisplayBox)box 
{  
    [super drawWithBox:box]; 

    [overlayedPage drawWithBox:box];   
} 
+0

请显示您使用的代码来执行此操作。 – 2010-09-15 21:13:12

回答

1

你的代码可能没问题。

如果它具有非透明(白色)背景,则可能由PDF本身引起。

我会首先尝试使用2个具有“已知良好”(透明)背景的PDF进行操作,就像大多数PDF文件一样。

您可以轻松检查启用Acrobat Reader是否将透明背景显示为非白色栅格。使用设置对话框来实现此目的:
Adobe Reader showing page background is transparent
此页面具有透明背景。然而,白盒的背景是...白色。

如果您的页面背景不透明且为白色,则Reader将以白色显示所有页面背景。

+0

谢谢。你是绝对正确的。叠加PDF的背景不透明。我已将文档转换为位图并以某种透明度叠加文档。它是如此。为了使它更好,我的下一个方法是使用位图并使用核心图像阈值过滤器完全移除背景。 – David 2010-09-16 14:01:35

+0

@大卫:如果这个答案帮助你前进,请注意它。 – 2010-09-16 16:27:34

1

您可能想要尝试将PDF渲染为位图以显示在Core Animation图层中。然后,您可以将图层的透明度设置为任何您需要的值。

+0

在查看PDFkit中的每种方法和类之后,我仍然无法找到如何以我想要的方式叠加PDF页面,所以这正是我现在要求的方向(除非有人提出了另一种可行的方法)。谢谢 – David 2010-09-15 22:08:47