小编DIJ*_*DIJ的帖子

SwiftUI UIViewRepresentable PDFKit PDFView AttributeGraph:通过属性检测到循环

编辑: 创建了一个示例项目来说明该问题:

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)

pdfkit retain-cycle uiviewrepresentable

5
推荐指数
1
解决办法
346
查看次数

iOS PDF到纯文本解析器

我对这个问题很感兴趣.我在这里几乎阅读了关于它的每一篇文章,如果有人能在正确的方向上推动我,我将非常感激.

我有一个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代码.

任何帮助将不胜感激.

pdf text extract ios cgpdf

2
推荐指数
1
解决办法
794
查看次数

标签 统计

cgpdf ×1

extract ×1

ios ×1

pdf ×1

pdfkit ×1

retain-cycle ×1

text ×1

uiviewrepresentable ×1