2016-11-02 4 views
1

私はpdfファイルを作成できますが、作成したファイルをiPhoneデバイスで見つけることができません。シミュレータで実行すると、保存したディレクトリを見つけることができます。 iPhoneでプレビューするにはどこに保存する必要がありますか?iPhoneでPDFファイルを作成しました

これは、PDFファイルを作成するためのコードです:

func createPDF() { 
let html = "<b>Hello <i>World!</i></b> <p>Generate PDF file from HTML in Swift</p>" 
let fmt = UIMarkupTextPrintFormatter(markupText: html) 

// 2. Assign print formatter to UIPrintPageRenderer 

let render = UIPrintPageRenderer() 
render.addPrintFormatter(fmt, startingAtPageAtIndex: 0) 

// 3. Assign paperRect and printableRect 

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") 

// 4. Create PDF context and draw 

let pdfData = NSMutableData() 
UIGraphicsBeginPDFContextToData(pdfData, CGRectZero, nil) 

for i in 1...render.numberOfPages() { 

    UIGraphicsBeginPDFPage(); 
    let bounds = UIGraphicsGetPDFContextBounds() 
    render.drawPageAtIndex(i - 1, inRect: bounds) 
} 

UIGraphicsEndPDFContext(); 

// 5. Save PDF file 

let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] 

pdfData.writeToFile("\(documentsPath)/file.pdf", atomically: true) 
} 
+0

print(\(documentsPath)) – Vinodh

+0

@VinodhこのフォルダはMacで見ることができますが、問題はiPhoneで見ることができません。私はUIAlertControllerを作成し、ドキュメントパスを印刷しました。その後、私はそれがiPhoneに保存されているが、私はそこにアクセスすることはできません参照してください。あなたは私が意味することを願って – coskukoz

+1

iExplorerアプリケーションを使用して、iPhoneのドキュメントディレクトリを表示またはアクセスすることができます。 – Vinodh

答えて

1

あなたはそれをプレビューしたい場合は、あなたがあなた自身のアプリで独自のビュー内で賃借人、またはその他のいずれかが、他のアプリにそのPDFファイルを共有する必要があります電子メール、whatsapp、ページアプリ、または他のアプリを通じて共有するようなものです。

このpdfを共有するには、UIActivityViewControllerを使用できます。

ここでは、objective-cと同じものを使用するためのコードを追加しています。必要に応じてすぐに変換することができます。

NSString *pdfFilePath = [documentsPath stringByAppendingPathComponent:@"file.pdf"]; 
NSURL *URL = [NSURL fileURLWithPath:pdfFilePath]; 

UIActivityViewController *activityViewController = 
[[UIActivityViewController alloc] initWithActivityItems:@[@"My PDF File", URL] 
            applicationActivities:nil]; 
[self presentViewController:activityViewController 
        animated:YES 
       completion:^{ 
       }]; 

スウィフト3.0のコードは次のようになります:

let pdfFilePath = "path to file.pdf"; 
    let url = NSURL.fileURL(withPath: pdfFilePath); 
    let activityVC = UIActivityViewController(activityItems: ["My Pdf File",url], applicationActivities: nil) 
    self.present(activityVC, animated: true, completion: nil); 
+1

私は今iOSプログラミングの新機能です。それをSwiftに変換するのを助けてください。それから私は試みることができます。 – coskukoz

+0

あなたが使っている素早いバージョンは? –

+0

私はスイフト3を使用します。本当に感謝しています。 – coskukoz

0

使用

let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] + "/file.pdf" 
    let myRequest = URLRequest(url: URL(fileURLWithPath: documentsPath)) 
    webView.loadRequest(myRequest) 

あなたはのUIWebViewでPDFの内容を表示することができます。

関連する問題