Comment puis-je lire le contenu d'un PDF sous forme de string dans swift. Je veux filterr plus tard cette string et get certains éléments de text. Le PDF provient d'une URL et je le charge dans une vue Web et le cache à l'aide d'une extension NSURL. Comment puis-je prendre cette webview et lire le contenu de l'URL. J'ai essayé:
var urlAsSsortingng = Ssortingng(contentsOfURL: NSURL(ssortingng: "http://web.shschools.org/shpid/pdfs/WXS5N48Z.pdf")!, encoding: NSUTF8SsortingngEncoding, error: nil)
Cependant, cela n'a pas fonctionné, je suppose que le file est un file PDF. Puis-je get de l'aide?
Si vous voulez éviter beaucoup de programmation, vous devrez probablement utiliser une bibliothèque qui vous aidera à extraire le text des files PDF.
Vous avez deux options:
1) Utiliser la bibliothèque OCR. Étant donné que le format PDF peut contenir des images autres que du text, effectuer une reconnaissance optique de caractères pour get le text est la solution la plus générique. Pour effectuer l'OCR sur un document PDF, vous devez le convertir en object UIImage . Une autre approche peut être de convertir le contenu de WebView en UIImage, mais cela peut se traduire par une image de résolution inférieure, ce qui peut affecter les performances de l'OCR.
L'inconvénient de l'utilisation de la bibliothèque OCR est que vous n'obtiendrez pas un text précis à 100%, car le moteur OCR introduit toujours des erreurs.
Les meilleures options pour OCR sont Tesseract pour iOS (gratuit, mais avec un taux d'erreur plus élevé et un peu plus complexe à modifier pour les résultats). Une option plus robuste est BlinkOCR , qui est libre d'essayer, payée en utilisation commerciale, mais vous pouvez get une tonne d'aide de leurs ingénieurs.
2) Vous pouvez également utiliser la bibliothèque PDF. Les bibliothèques PDF peuvent extraire de manière fiable du text écrit dans le document, à l'exception du text qui fait partie des images dans le PDF. Donc, selon les documents que vous voulez lire, cela pourrait être une meilleure option (ou non).
Certaines options pour les bibliothèques PDF peuvent être trouvées ici , et dans notre expérience, PDFlib donne de très bons résultats et est le plus personnalisable.
Un PDF peut être une variété de choses, il peut afficher du text mais ne contient pas réellement de text qui peut être analysé. (Pensez à un service de fax au courrier électronique).
Une idée serait de créer un context d'image hors de la vue web puis de l'envoyer dans un cadre OCR pour la reconnaissance de caractères. (Voici un tutoriel OCR: http://www.raywenderlich.com/93276/implementing-tesseract-ocr-ios )
Pour get des éléments du text, vous pouvez utiliser cette fonction
func parser (textToParse:Ssortingng, strFrom:Ssortingng, strTo:Ssortingng) -> Ssortingng { return textToParse.componentsSeparatedBySsortingng(strFrom)[1].componentsSeparatedBySsortingng(strTo)[0] } var s=parser("abc", strFrom: "a", strTo: "c") //s will be "b"