Dokumentacja nie jest dla mnie jasna. Do tej pory uważam, że muszę ustawić CGPDFOperatorTable, a następnie utworzyć CGPDFContentStreamCreateWithPage i CGPDFScannerCreate na stronie PDF.Jak analizować zawartość ze strony PDF za pomocą Swift
Ta dokumentacja dotyczy konfiguracji wywołań zwrotnych, ale nie jest dla mnie jasne, w jaki sposób. Jak faktycznie uzyskać zawartość ze strony?
To jest mój kod do tej pory.
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)
Jest to podobne pytanie: PDF Parsing with SWIFT ale nie ma jeszcze żadnych odpowiedzi.
Sądzę muszę napisać wywołania zwrotne, które są wywoływane, gdy skaner skanuje. Czy ktoś może wysłać przykład wywołania zwrotnego? Czy jest to niestandardowa metoda, którą rejestruję w CGPDFOperatorTableSetCallback? Przykład byłby świetny. –
Czy zdajesz sobie sprawę z tego, że sprawdzenie, czy coś nie działa? ponieważ powraca z bloku if, a następnie kontynuuje wykonywanie. Aby było tylko przeglądać strony, jeśli istnieją strony, umieść wszystko za blokiem if wewnątrz bloku else. – Eric
Ja robię. Naprawdę chcę wiedzieć więcej na temat wywołań zwrotnych. Zdaję sobie jednak sprawę z tego oświadczenia, dziękuję! –