【问题标题】:VNDocumentCameraScan to searchable PDFVNDocumentCameraScan 到可搜索的 PDF
【发布时间】:2020-12-27 20:23:20
【问题描述】:

VNDocumentCameraViewController 的帮助下获得VNDocumentCameraScan 后,我目前正在尝试创建一个可搜索的PDFDocument

目前我只拍摄扫描图像并将它们放入PDFDocument 实例中。


func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) {
   let pdf = createPDF(from: scan)
} 

fileprivate func createPDF(from scan: VNDocumentCameraScan) -> PDFDocument {
    let pdfDocument = PDFDocument()
    for i in 0 ..< scan.pageCount {
        let pdfPage = PDFPage(image: scan.imageOfPage(at: i))
            pdfDocument.insert(pdfPage!, at: i)
        }
    return pdfDocument
}

我也知道如何从VNDocumentCameraScan 中提取文本。我想念的是我如何将文本信息合并到PDFDocument 实例中。我需要这个,因为我想扫描文档,将它们保存为.pdf 到文件系统,然后搜索它们。

我搜索了很多,但没有找到方法。

有谁知道我将如何做到这一点?

【问题讨论】:

    标签: ios swift ios-pdfkit visionkit


    【解决方案1】:

    这篇博文详细介绍了该主题。我正在链接到系列的第 3 部分,因为它解决了您所坚持的过程部分。

    https://alexanderweiss.dev/blog/2021-03-29-from-uiimage-to-searchable-pdf-part-3

    主要思想是在 pdf 中的图像下方绘制已识别的文本。文章中的基本步骤:

    1. 拍照
    2. 识别图片上的文字
    3. 使用图像尺寸创建 PDF 页面
    4. 使用识别出来的文字来绘制文字
    5. 在pdf上的文字上方绘制图片

    VNRecognizedText 包含有关已识别文本位置的信息,可让您确定在何处绘制文本。我能够在我的应用程序中成功使用这篇文章中的代码;虽然在处理手写文本时它不是 100% 完美,但它的效果相当不错。

    【讨论】:

    • 如何处理主线程上的阻塞。我不知道如何从主队列中运行它,因为没有异步代码......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 2023-01-31
    • 2015-12-31
    • 1970-01-01
    相关资源
    最近更新 更多