编辑: 创建了一个示例项目来说明该问题:
https://github.com/Harold-D/PDFView_Representable
问题:
我迷失了,我在 SwiftUI 中对 PDFView 有一个非常简单的 UIViewRepresentable 包装器
import PDFKit
import SwiftUI
struct MyPDFView: UIViewRepresentable {
typealias UIViewType = PDFView
@Binding var pdf: Data
func makeUIView(context _: UIViewRepresentableContext<MyPDFView>) -> UIViewType {
return PDFView()
}
func updateUIView(_ pdfView: UIViewType, context _: UIViewRepresentableContext<MyPDFView>) {
pdfView.document = PDFDocument(data: pdf)
}
}
Run Code Online (Sandbox Code Playgroud)
它正确显示 PDF,但会生成大约 18 条AttributeGraph: cycle detected through attribute消息。
@Binding var pdfStruct: PDFStruct
var body: some View {
MyPDFView(pdf: Binding($pdfStruct.pdf)!)
}
Run Code Online (Sandbox Code Playgroud)
struct PDFStruct {
var pdf: Data?
} …Run Code Online (Sandbox Code Playgroud) 我对这个问题很感兴趣.我在这里几乎阅读了关于它的每一篇文章,如果有人能在正确的方向上推动我,我将非常感激.
我有一个PDF,我想提取它的文本,我只对文字和空格感兴趣.我已经设置了CGPDFScanner和它的回调方法.我所读到的是,就提取文本而言,我只需要考虑4个运算符TJ,Tj,qout(')和doubleqout(").
我想我还需要跟踪文本空间,以便能够确定字母是组合在一起形成一个单词还是应该用空格分隔.但我不知道如何做到这一点.
在PDF中,所有文本都采用格式
[(X)-24.2524(X)-24.2524(X)-24.2524(Y)-24.2524(Y)-24.2524]TJ
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚(使用PDF规范)这些数字的含义.SO上有人说你不应该害怕PDF规范,但坦率地说,我发现它们不容易阅读/理解.
我研究过有用的PDFKitten代码.
任何帮助将不胜感激.