2010-09-15 93 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