我有一个与打开 PDF 文件相关的项目。这是在Info.plist
. 当我收到电子邮件中的 PDF 附件时,我可以将手指放在 PDF 附件上,然后在我的应用程序中“打开”。在我的AppDelegate
中,我添加了以下内容:
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
incomingTransfer = URL
return true
}
incomingTransfer
是 aGlobal Variable
在另一个中声明ViewController
为 a NSURL
。这ViewController
也有一个UIWebView
和incomingTransfer
负载,我可以看到新的 PDF 文件。我的目标是有一个按钮,允许用户将传入的 PDF 保存为 PDF。我遇到了麻烦。我以为我已经弄清楚了,但它根本没有保存为 PDF,而是保存为String
. 有人能帮助我吗?我的目标是将传入的 PDF 文件作为 PDF 保存到应用程序内存中,最好是DocumentDirectory
. 我很难将 Objective C 转换为 Swift。我保存它的原始代码是:
let html = String(incomingFileTransfer)
let fmt = UIMarkupTextPrintFormatter(markupText: html)
let render = UIPrintPageRenderer()
render.addPrintFormatter(fmt, startingAtPageAtIndex: 0)
let page = CGRect(x: 0, y: 0, width: 595.2, height: 841.8) // A4, 72 dpi
let printable = CGRectInset(page, 0, 0)
render.setValue(NSValue(CGRect: page), forKey: "paperRect")
render.setValue(NSValue(CGRect: printable), forKey: "printableRect")
let pdfData = NSMutableData()
UIGraphicsBeginPDFContextToData(pdfData, CGRectZero, nil)
for i in 1...render.numberOfPages() {
UIGraphicsBeginPDFPage();
let bounds = UIGraphicsGetPDFContextBounds()
render.drawPageAtIndex(i - 1, inRect: bounds)
}
UIGraphicsEndPDFContext();
recipeFileName = fileName.text!
print("File Name Entered: \(recipeFileName)")
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
pdfData.writeToFile("\(documentsPath)/\(recipeFileName).pdf", atomically: true)