0

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

谢谢。

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

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

    [overlayedPage drawWithBox:box];        
}
4

2 回答 2

1

您可能想尝试将 PDF 渲染为位图以显示在核心动画层中。然后,您可以将图层的透明度设置为您需要的任何内容。

于 2010-09-15T21:42:30.893 回答
1

你的代码可能没问题。

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

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

您可以轻松选中启用 Acrobat Reader 以将透明背景显示为非白色光栅。使用设置对话框来实现:
Adobe Reader 显示页面背景是透明的
此页面具有透明的背景。然而,白盒子的背景是……白色的。

如果您的页面背景不透明且为白色,则阅读器会将所有页面背景显示为白色。

于 2010-09-16T07:57:57.560 回答