【发布时间】:2015-11-09 12:57:39
【问题描述】:
PDF 文件在 Web 服务器上生成并作为 NSData 接收。 Swift 能够打印这个 NSData 对象;但是,通常接受 PDF 的其他应用程序(例如 Google Drive)在共享表上无法识别它。共享表上显示的唯一选项是用于打印和复印。
我尝试了以下方法无济于事:
let dataProvider = CGDataProviderCreateWithCFData(pdfObject)
let pdf = CGPDFDocumentCreateWithProvider(dataProvider)
return pdf!
根据 sbarow 的评论,我也尝试了以下方法,但 retrievePDFFromDisk 函数返回 nil:
func writePDFToDisk () {
var docURL = (NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)).last! as NSURL
docURL = docURL.URLByAppendingPathComponent( "myDocument.pdf")
pdfObject.writeToURL(docURL, atomically: true)
}
func retrievePDFFromDisk () -> AnyObject {
let pdf = NSBundle.mainBundle().URLForResource("myDocument", withExtension: "pdf")
return pdf!
}
如何将这些数据以 PDF 格式正确地从共享表中发布给其他应用程序?
【问题讨论】:
-
用
writeToURL:atomically:将NSData写入磁盘,然后使用文件路径共享。 -
我已编辑问题以显示我根据您的建议尝试过的方法;
pdf虽然返回 nil。一定是在检索中遗漏了一些东西。 -
试试
writeToFile:atomically。
标签: swift pdf nsdata ios-sharesheet