如何解决PDFDocument
我正在Mac应用程序(Xcode 11.7、10.15部署目标)中使用PDFKit查看pdf。用户能够突出显示选择内容,并复制文本或创建引号。
对于一些pdf文件,我无法获得正确的亮点字符串内容。
采用以下pdf格式:https://www.irs.gov/pub/irs-pdf/iw8bene.pdf。例如,如果在“预览”中打开它,则可以将内容复制并粘贴到TextEdit中。
如果我使用PDFView打开此pdf,则只能复制和粘贴一些文本(例如,主标题),但是正文仅粘贴复制的空格!我没有自定义代码来处理PDFView上的副本。
如果在突出显示文档时评估当前的PDFSelection,则会在字符串中出现空格和废话字符:
for character in pdfSelection.string!.unicodeScalars {
print(character.value)
}
示例结果:
32
1113109
1113135
1113135
1113109
32
1113118
1113091
32
出什么问题了,标准的复制代码也犯了错误,所以也许我缺少PDFView或PDFDocument的设置问题?我只需在Interface Builder中创建PDFView,然后打开带有URL的PDFDocument并将其设置在视图上即可。
解决方法
此问题是在我的应用程序中的其他地方引起的,但仍与PDFDocument有关。将pdf拖到我的应用程序时,我创建一个PDFDocument来检查有效性,然后将该项目保存到应用程序的文件夹中:
guard let pdf = PDFDocument(url: fileURL) else { ... }
guard pdf.write(to: documentURL(forID: documentID,andType: .pdf)) else { ... }
正是这种对文件的处理导致它被巧妙地修改/破坏。
基于pdf的复杂性,这对我来说太幼稚了。以后我将只复制原始文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。