Tài liệu không thực sự rõ ràng đối với tôi. Cho đến nay tôi nghĩ rằng tôi cần phải thiết lập một CGPDFOperatorTable và sau đó tạo ra một CGPDFContentStreamCreateWithPage và CGPDFScannerCreate cho mỗi trang PDF.Làm cách nào để phân tích nội dung từ trang PDF bằng Swift
Tài liệu tham chiếu để thiết lập Callbacks, nhưng không rõ với tôi như thế nào. Làm thế nào để thực sự có được nội dung từ một trang?
Đây là mã của tôi cho đến thời điểm này.
let pdfURL = NSBundle.mainBundle().URLForResource("titleofdocument", withExtension: "pdf")
// Create pdf document
let pdfDoc = CGPDFDocumentCreateWithURL(pdfURL)
// Nr of pages in this PF
let numberOfPages = CGPDFDocumentGetNumberOfPages(pdfDoc) as Int
if numberOfPages <= 0 {
// The number of pages is zero
return
}
let myTable = CGPDFOperatorTableCreate()
// lets go through every page
for pageNr in 1...numberOfPages {
let thisPage = CGPDFDocumentGetPage(pdfDoc, pageNr)
let myContentStream = CGPDFContentStreamCreateWithPage(thisPage)
let myScanner = CGPDFScannerCreate(myContentStream, myTable, nil)
CGPDFScannerScan(myScanner)
// Search for Content here?
// ??
CGPDFScannerRelease(myScanner)
CGPDFContentStreamRelease(myContentStream)
}
// Release Table
CGPDFOperatorTableRelease(myTable)
Câu hỏi tương tự như: PDF Parsing with SWIFT nhưng chưa có câu trả lời.
Tôi nghĩ tôi phải viết callbacks, được gọi khi máy quét quét. Ai đó có thể đăng một ví dụ về một cuộc gọi lại không? Có một phương pháp tùy chỉnh mà tôi đăng ký với CGPDFOperatorTableSetCallback? Một ví dụ sẽ là tuyệt vời. –
Bạn nhận thức được thực tế nếu kiểm tra không làm gì cả? bởi vì nó trả về trong khối if và sau đó tiếp tục thực hiện. Để làm cho nó chỉ vòng qua các trang nếu có các trang, hãy đặt mọi thứ sau khối nếu bên trong khối khác. – Eric
Tôi có. Tôi thực sự muốn biết thêm về callbacks. Tôi nhận thức được tuyên bố nếu, mặc dù mặc dù! –