ios SwiftUI -如何正确使用ShareLink共享使用PDFKit生成的多页PDF

uoifb46i  于 12个月前  发布在  iOS
关注(0)|答案(1)|浏览(164)

我试图使用ShareLink来共享我使用PDFKit创建的多页PDF。我有它的工作排序,但不是100%。我的代码到目前为止如下:
我用来使item(PDF)符合Transferable的扩展:

extension PDFDocument: Transferable {
    public static var transferRepresentation: some TransferRepresentation {
        DataRepresentation(exportedContentType: .pdf) { pdf in 
            return pdf.dataRepresentation() ?? Data()
        }
    }
}

字符串
ShareLink调用:

let pdfToShare = PDFDocument(data: myData)
ShareLink(item: pdfToShare ?? PDFDocument(), preview: SharePreview(Text("Sharing - \(docRemName)"), image: Image(uiImage: docRemImage)))


当我点击共享按钮时,我可以使用显示的ShareSheet通过消息和电子邮件进行共享,没有任何问题。我甚至可以使用“保存到文件”。但是,使用弹出的其他ShareSheet选项,如打印,标记,复制,或与其他应用程序一起使用(Pinterest,Twitter或其他)似乎不起作用。似乎使用ShareSheet上的东西是命中或错过。例如,当我点击“打印”时什么也没有发生,但是当我点击“用惠普智能打印”(我有一台惠普打印机)时,它会拉起预览,然后我可以打印,如果我愿意的话。

  • 无论如何,我想知道是否有一种方法可以限制ShareSheet中弹出的选项,以便如果用户选择其中一些选项,我的应用程序看起来不会损坏。
    ***我也想知道我是否正确地共享了一个PDF。***我看了很多使用ShareLink的例子,阅读了Apple文档,也尝试了一些YouTube教程。我没有找到太多关于共享PDF的细节。任何帮助或建议都是很好的。
brccelvz

brccelvz1#

所以,我最终没有尝试使用上面的Transferable扩展。可能有一种方法可以做到这一点,但考虑到我的应用程序现在的功能,我发现它是更有效的,只是使用ShareLink指向一个本地文件url(url已经符合Transferable),其中创建的pdf已经被保存。示例:

ShareLink("Share?", item: model.url, subject: Text("subject"), message: Text("message"))

字符串

相关问题