2013-06-06 11 views
7

私のiPadアプリケーションでPDFをUIWebViewまで表示しようとしています。iOS UIWebViewにPDFコンテンツを含むNSDataを表示するには?

NSData * responseData = [NSURLConnection sendSynchronousRequest:mutableUrlRequest returningResponse:nil error:nil]; 
[pdfWebView loadData:responseData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil]; 

しかし、これは機能しません。それは表示する正しい方法ですか?もしそうでなければ、UIWebViewや他の便利な方法でPDFを見せてくれる人は誰でも私を導くことができます。

ありがとうございます!

+0

あなたがなぜ任意の理由Webビューでpdf urlを直接ロードしないでください。 –

+0

@verbumdei理由は、私の要件は、Javaサーブレットを打つことによってPDFデータを取得することです。 –

答えて

21

は私の質問の答えを得ました。以下の行は魔法を行うでしょう。

[webview loadData:PdfContent MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil]; 
2

一時ディレクトリにPDFサフィックスが付いたファイルに保存し、そこから開きます。

+1

NSDataをバイト配列で保存してローカルディレクトリにPDFとして保存するコードスニペットを教えてください。 –

0

ます(「document.pdf」という名前のこの例では)自分のアプリケーションにバンドルされたPDFファイルを持っている場合:

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10, 200, 200)]; 

NSString *path = [[NSBundle mainBundle] pathForResource:@"document" ofType:@"pdf"]; 
NSURL *targetURL = [NSURL fileURLWithPath:path]; 
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
[webView loadRequest:request]; 

[self.view addSubview:webView]; 
[webView release]; 
あなたがここでより多くの情報を見つけることができます

:技術QA1630:選択ドキュメントタイプを表示するには、UIWebViewを使用します。ドキュメントディレクトリへのNSData(PDFファイル)を保存する方法

+2

私の質問は異なります、私はサーバーからのPDFのデータを持っています。 –

2

NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    NSString *documentFolderPath = [searchPaths objectAtIndex: 0]; 
    NSString *imagePath = [documentFolderPath stringByAppendingPathComponent:@"yourPdfFileName.pdf"]; 

NSFileManager *filemanager=[NSFileManager defaultManager]; 
    if(![filemanager fileExistsAtPath:filePath]) 
     [[NSFileManager defaultManager] createFileAtPath:filePath contents: nil attributes: nil]; 

    NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:filePath]; 

    [handle writeData:data]; 
0

Quick Look FrameworkまたはUIDocumentInteractionControllerを使用していない理由は何ですか?彼らは、WebViewよりも多くの機能をユーザーに提供することができます。ここで

は、Appleのドキュメントへのリンクです:https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/DocumentInteraction_TopicsForIOS/Articles/UsingtheQuickLookFramework.html

https://developer.apple.com/library/ios/documentation/uikit/reference/UIDocumentInteractionController_class/Reference/Reference.html

あなたは、アプリのファイルシステムからフレットする必要がPDFをレンダリングしないように探しているなら!ちょうどそのフルパスでQLPreviewControllerにそれを提供し、あなたが保存されているPDFは、適切な「.PDF」の拡張子を持っていることを確認してください:

self.contentURL = [NSURL fileURLWithPath:fullPath]; 
2

SWIFT3

webView.load(data, mimeType: "application/pdf", textEncodingName: "UTF-8", baseURL: URL(string: "You can use URL of any file in your bundle here")!) 
関連する問題