我是新來的Swift,所以請裸照我。我有一個與打開PDF文件相關的項目。這設置在Info.plist
。當我在電子郵件中獲得PDF附件時,我可以將手指放在PDF附件上,然後在我的應用程序中打開。在我AppDelegate
,我有以下補充:在WebView中將傳入的PDF保存到內存
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
incomingTransfer = URL
return true
}
incomingTransfer
是在另一個ViewController
聲明爲NSURL
一個Global Variable
。這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)