Blur PDF Page in Swift for iOS

Use UIBlurEffect to blur specific pages of a document.


//
// Copyright © 2018-2025 PSPDFKit GmbH. All rights reserved.
//
// The Nutrient sample applications are licensed with a modified BSD license.
// Please see License for details. This notice may not be removed from this file.
//
import PSPDFKit
import PSPDFKitUI
class BlurPagesExample: Example, PDFViewControllerDelegate {
override init() {
super.init()
title = "Blur Pages"
contentDescription = "Shows how to blur specific pages in a document."
category = .viewCustomization
}
override func invoke(with delegate: ExampleRunnerDelegate) -> UIViewController {
let document = AssetLoader.writableDocument(for: .welcome, overrideIfExists: false)
let controller = PDFViewController(document: document, delegate: self) {
$0.pageTransition = .scrollPerSpread
$0.pageMode = .single
$0.thumbnailBarMode = .none
$0.isTextSelectionEnabled = false
}
// Remove the thumbnails button item from the toolbar.
let rightBarButtonItems = controller.navigationItem.rightBarButtonItems?.filter({ buttonItem -> Bool in
return buttonItem != controller.thumbnailsButtonItem
})
controller.navigationItem.setRightBarButtonItems(rightBarButtonItems, animated: false)
return controller
}
internal func pdfViewController(_ pdfController: PDFViewController, willBeginDisplaying pageView: PDFPageView, forPageAt pageIndex: Int) {
// Only blur the first three pages.
if pageIndex < 2 {
// Blur pages if they aren't already blurred.
if !pageView.isBlurred {
let effect = UIBlurEffect(style: .light)
let visualEffectView = UIVisualEffectView(effect: effect)
visualEffectView.frame = pageView.bounds
visualEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
pageView.addSubview(visualEffectView)
}
} else {
// Remove the visual effect view from the blurred pages if necessary.
for view in pageView.subviews where view is UIVisualEffectView {
view.removeFromSuperview()
}
}
}
}
fileprivate extension PDFPageView {
var isBlurred: Bool {
return self.subviews.contains(where: { $0 is UIVisualEffectView })
}
}

This code sample is an example that illustrates how to use our SDK. Please adapt it to your specific use case.