VNDocumentCameraScan 到可搜索的 PDF
VNDocumentCameraScan to searchable PDF
在 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
保存到文件系统,然后搜索它们。
我搜索了很多但没有找到方法。
有谁知道我将如何完成这个?
此博客 post 详细介绍了该主题。我链接到系列的第 3 部分,因为它解决了您遇到的流程部分。
https://alexanderweiss.dev/blog/2021-03-29-from-uiimage-to-searchable-pdf-part-3
主要思想是在 pdf 中的图像下方绘制已识别的文本。文章中的基本步骤:
- Take the image
- Recognize the text on the image
- Create a PDF page with the dimensions of the image
- Use the recognized text to draw text
- Draw the image above the text on the pdf
VNRecognizedText 包含有关已识别文本位置的信息,可让您确定在何处绘制文本。我能够在我的应用程序中成功使用此 post 中的代码;虽然它在处理手写文本时不是 100% 完美,但它工作得相当好。
在 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
保存到文件系统,然后搜索它们。
我搜索了很多但没有找到方法。
有谁知道我将如何完成这个?
此博客 post 详细介绍了该主题。我链接到系列的第 3 部分,因为它解决了您遇到的流程部分。
https://alexanderweiss.dev/blog/2021-03-29-from-uiimage-to-searchable-pdf-part-3
主要思想是在 pdf 中的图像下方绘制已识别的文本。文章中的基本步骤:
- Take the image
- Recognize the text on the image
- Create a PDF page with the dimensions of the image
- Use the recognized text to draw text
- Draw the image above the text on the pdf
VNRecognizedText 包含有关已识别文本位置的信息,可让您确定在何处绘制文本。我能够在我的应用程序中成功使用此 post 中的代码;虽然它在处理手写文本时不是 100% 完美,但它工作得相当好。