阅读pdf的内容作为string

我怎样才能快速读取PDF的内容作为一个string。 我想稍后过滤这个string,并从中获取特定的文本元素。 PDF是从一个url,我加载它的网页视图,并使用NSURL扩展caching。 我怎样才能采取这个webview并阅读URL的内容。 我试过了:

var urlAsString = String(contentsOfURL: NSURL(string: "http://web.shschools.org/shpid/pdfs/WXS5N48Z.pdf")!, encoding: NSUTF8StringEncoding, error: nil) 

但是,这不起作用,我假设,因为该文件是一个PDF。 我能得到一些帮助吗?

如果你想避免大量的编程,你可能需要使用一些库来帮助你从PDF中提取文本。

你有两个select:

1)使用OCR库。 由于PDF可以包含图像以外的图像,因此使用OCR来获取文本是最通用的解决scheme。 要在PDF文档上执行OCR,您需要将其转换为UIImage对象 。 另一种方法是将WebView的内容转换为UIImage,但这可能会导致分辨率较低的图像,从而影响OCR性能。

使用OCR库的不利之处在于,由于OCR引擎始终引入错误,因此无法获得100%准确的文本。

OCR的最佳select是iOS的Tesseract (免费,但更高的错误率和更复杂的调整结果)。 BlinkOCR是一个更强大的选项,可以免费试用,在商业用途上支付,但是你可以从他们的工程师那里得到很多的帮助。

2)您也可以使用PDF库。 PDF库可以可靠地提取文档中写入的文本,除PDF文本之外的文本。 所以根据你想要阅读的文件,这可能是一个更好的select(或不)。

PDF库的一些选项可以在这里find,根据我们的经验, PDFlib提供了非常好的结果,是最可定制的。

PDF可以是各种各样的东西,它可以显示文本,但实际上不包含任何可以parsing的文本。 (想想传真到电子邮件服务)。

一个想法是从Web视图中创build一个图像上下文,然后将其发送到OCR框架进行字符识别。 (这是一个OCR教程: http : //www.raywenderlich.com/93276/implementing-tesseract-ocr-ios )

要从文本中获取任何元素,您可以使用此function

 func parser (textToParse:String, strFrom:String, strTo:String) -> String { return textToParse.componentsSeparatedByString(strFrom)[1].componentsSeparatedByString(strTo)[0] } var s=parser("abc", strFrom: "a", strTo: "c") //s will be "b"