Swift version: 5.10
PDFKit comes with a built-in class called PDFDocument
, which allows us to load and parse PDF documents. It’s used when you want to put your PDF into a PDFView
, but it’s also useful when you just want to read text from the PDF: you can loop over each page in the PDF, read its attributedString
property, then append it to an attributed string containing all the text from the PDF.
First, add import PDFKit
in the Swift file you’re using, then add the following example code to read out the text contents of a file:
if let pdf = PDFDocument(url: yourDocumentURL) {
let pageCount = pdf.pageCount
let documentContent = NSMutableAttributedString()
for i in 0 ..< pageCount {
guard let page = pdf.page(at: i) else { continue }
guard let pageContent = page.attributedString else { continue }
documentContent.append(pageContent)
}
}
It’s an attributed string, so it will retain formatting from the PDF as best as it can.
SPONSORED Join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer! Hurry up because it'll be available only until February 9th.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 11.0 – learn more in my book Advanced iOS: Volume Two
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.