analysieren Die Dokumentation ist mir nicht wirklich klar. Bis jetzt muss ich eine CGPDFOperatorTable einrichten und dann eine CGPDFContentStreamCreateWithPage und CGPDFScannerCreate pro PDF-Seite erstellen.Wie kann ich Inhalt von einer PDF-Seite mit Swift
Die Dokumentation bezieht sich auf die Einrichtung von Callbacks, aber es ist mir unklar, wie. Wie erhalte ich den Inhalt von einer Seite?
Dies ist mein Code so weit.
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)
Es ist eine ähnliche Frage: PDF Parsing with SWIFT hat aber noch keine Antworten.
Ich glaube, ich Rückrufe zu schreiben, die, wenn die Scanner scannt aufgerufen werden. Kann jemand ein Beispiel für einen Rückruf posten? Ist es eine benutzerdefinierte Methode, die ich bei CGPDFOperatorTableSetCallback registriere? Ein Beispiel wäre großartig. –
Sie sind sich der Tatsache bewusst, dass die Überprüfung nichts bewirkt? weil es aus dem if-Block zurückkehrt und dann weiter ausführt. Um zu erreichen, dass nur die Seiten durchlaufen werden, wenn es Seiten gibt, lege alles nach dem if-Block in einen else-Block. – Eric
tue ich. Ich möchte wirklich mehr über Rückrufe wissen. Ich bin mir der if-Anweisung bewusst, aber danke! –