2013-06-06 4 views
7

मैं नीचे दिखाए गए अनुसार UIWebView के माध्यम से अपने आईपैड एप्लिकेशन में एक पीडीएफ दिखाने की कोशिश कर रहा हूं।आईओएस UIWebView में पीडीएफ सामग्री के साथ एनएसडीटा कैसे प्रदर्शित करें?

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

लेकिन यह काम नहीं करता है। क्या यह प्रदर्शित करने का सही तरीका है? यदि कोई मुझे UIWebView या किसी अन्य उपयोगी विधि में पीडीएफ दिखाने में मार्गदर्शन नहीं कर सकता है।

धन्यवाद!

+0

किसी भी कारण है कि आप ऐसा करेंगे सीधे वेब दृश्य में पीडीएफ यूआरएल लोड नहीं? –

+0

@verbumdei कारण यह है कि, जावा आवश्यकता को मारकर पीडीएफ डेटा प्राप्त करने की मेरी आवश्यकता है। –

उत्तर

21

मेरे सवाल के लिए इस सवाल का जवाब मिल गया। नीचे की रेखा जादू करेगी।

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

इसे एक temp निर्देशिका में पीडीएफ प्रत्यय वाली फ़ाइल में सहेजें, और इसे वहां से खोलें।

+1

क्या आप स्थानीय निर्देशिका में पीडीएफ के रूप में स्टोर करने के लिए बाइट सरणी के साथ NSData को सहेजने के लिए कुछ कोड स्निपेट दे सकते हैं। –

0

आप अपने आवेदन के साथ सम्मिलित PDF फ़ाइल है (इस उदाहरण "document.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 का उपयोग करना ।

+2

मेरा प्रश्न अलग है, मेरे पास सर्वर से पीडीएफ का डेटा है। –

2

दस्तावेज़ निर्देशिका में NSData (पीडीएफ फाइल) को बचाने के लिए कैसे:

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

किसी भी कारण या तो आप निगाह डालें फ्रेमवर्क या UIDocumentInteractionController का उपयोग नहीं कर रहे हैं? वे उपयोगकर्ता को वेबव्यू और थोड़ा कम क्लोजी से अधिक कार्यक्षमता प्रदान करने में सक्षम हैं। 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 रेंडर करने के लिए देख रहे हैं, चिंता करने की कोई जरूरत नहीं:

यहाँ एप्पल के प्रलेखन के लिए लिंक कर रहे हैं! बस सुनिश्चित करें कि पीडीएफ आप संग्रहीत किया है, उचित '.pdf' एक्सटेंशन है, फिर पूरा पथ में QLPreviewController को दें:

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")!) 
संबंधित मुद्दे