如何将PDF的内容以字符串的形式快速读取。我想稍后过滤这个字符串并从中获取特定的文本元素。PDF来自一个url,我将它加载到一个web视图中并使用NSURL扩展来缓存它。我怎样才能获得这个网页,并阅读网址的内容。我试过:
var urlAsString = String(contentsOfURL: NSURL(string: "http://web.shschools.org/shpid/pdfs/WXS5N48Z.pdf")!, encoding: NSUTF8StringEncoding, error: nil)但是,我认为这是无效的,因为文件是PDF文件。我能得到帮助吗?
发布于 2015-08-02 11:07:23
如果您想避免大量的编程,您可能需要使用一些库来帮助您从PDF中提取文本。
你有两个选择:
1)使用OCR库。由于PDF可以包含文本之外的图像,执行OCR以获取文本是最通用的解决方案。要在PDF文档上执行OCR,您需要将其转换为UIImage对象。另一种方法可以是将WebView的内容转换为UIImage,但这可能会导致分辨率较低的图像,从而影响OCR性能。
使用OCR库的缺点是无法获得100%准确的文本,因为OCR引擎总是会引入错误。
OCR的最佳选择是iOS的Tesseract (免费,但错误率更高,结果调整更复杂)。一个更强大的选择是BlinkOCR,它可以免费尝试,在商业使用时付费,但是您可以从他们的工程师那里得到大量的帮助。
2)还可以使用PDF库。PDF库可以可靠地提取文档中写入的文本,但PDF中的图像中的文本除外。因此,根据您想要阅读的文档,这可能是一个更好的选择(或者不是)。
PDF库的一些选项可以找到这里,在我们的经验中,PDFlib提供了非常好的结果,并且是最可定制的。
发布于 2015-08-02 03:31:07
PDF可以是各种各样的东西,它可以显示文本,但实际上不包含任何可以解析的文本。(想象一下传真到电子邮件服务)。
一种方法是在web视图之外创建一个图像上下文,然后将其发送到OCR框架中进行字符识别。(以下是OCR教程:http://www.raywenderlich.com/93276/implementing-tesseract-ocr-ios)
发布于 2015-08-02 07:31:24
要从文本中获取任何元素,可以使用以下函数
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"https://stackoverflow.com/questions/31768257
复制相似问题