该文档对我来说不是很清楚。到目前为止,我认为我需要设置一个CGPDFOperatorTable,然后为每个PDF页面创建一个CGPDFContentStreamCreateWithPage和CGPDFScannerCreate。如何使用Swift解析PDF页面中的内容
该文件涉及设置回调,但它不清楚如何。如何真正从页面获取内容?
这是我的代码到目前为止。
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)
这是一个类似的问题:PDF Parsing with SWIFT,但还没有答案。
我想我必须写回调,被称为当扫描仪扫描。有人可以发布一个回调的例子吗?这是一种用CGPDFOperatorTableSetCallback注册的自定义方法吗?一个例子会很棒。 –
你知道这个事实,如果检查没有做任何事情?因为它返回的if块,然后继续执行。要使页面只在页面中循环时,请将if块内的所有内容放入else块中。 – Eric
我这样做。我真的想更多地了解回调。我知道if语句,谢谢! –