2010-05-14 2 views

risposta

265

Sì, questo può essere fatto con UIWebView.

Se si sta tentando di visualizzare un file PDF che risiede su un server da qualche parte, si può semplicemente caricarlo nella vista web direttamente:

Objective-C

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

NSURL *targetURL = [NSURL URLWithString:@"https://www.example.com/document.pdf"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
[webView loadRequest:request]; 

[self.view addSubview:webView]; 

Swift

let webView = UIWebView(frame: CGRect(x: 10, y: 10, width: 200, height: 200)) 

let targetURL = NSURL(string: "https://www.example.com/document.pdf")! // This value is force-unwrapped for the sake of a compact example, do not do this in your code 
let request = NSURLRequest(URL: targetURL) 
webView.loadRequest(request) 

view.addSubview(webView) 

Oppure se si dispone di un file PDF in bundle con l'applicazione (in questo ex ampio denominato "document.pdf"):

Objective-C

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

NSURL *targetURL = [[NSBundle mainBundle] URLForResource:@"document" withExtension:@"pdf"]; 
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
[webView loadRequest:request]; 

[self.view addSubview:webView]; 

Swift

let webView = UIWebView(frame: CGRect(x: 10, y: 10, width: 200, height: 200)) 

let targetURL = NSBundle.mainBundle().URLForResource("document", withExtension: "pdf")! // This value is force-unwrapped for the sake of a compact example, do not do this in your code 
let request = NSURLRequest(URL: targetURL) 
webView.loadRequest(request) 

view.addSubview(webView) 

È possibile trovare maggiori informazioni qui: Technical QA1630: Using UIWebView to display select document types.

+0

Grazie mille ... alleus. possiamo salvarlo nella directory dei documenti locali in iPhone? –

+3

Sì, è possibile, ma è necessario utilizzare un altro metodo per scaricare il documento diverso da una WebView. Cercalo qui su Stack Overflow. Ad esempio: http://stackoverflow.com/questions/2102267/downloading-a-file-from-url-and-saving-to-resources-on-iphone – alleus

+0

Usato il tuo codice ma non funziona bene per me .... – Jitendra

9

uso questo per file pdf aperto in WebView

NSString *path = [[NSBundle mainBundle] pathForResource:@"mypdf" ofType:@"pdf"]; 
NSURL *targetURL = [NSURL fileURLWithPath:path]; 
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
UIWebView *webView=[[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 300, 300)]; 
[[webView scrollView] setContentOffset:CGPointMake(0,500) animated:YES]; 
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(0.0, 50.0)"]]; 
[webView loadRequest:request]; 
[self.view addSubview:webView]; 
[webView release]; 
3
NSString *folderName=[NSString stringWithFormat:@"/documents/%@",[tempDictLitrature objectForKey:@"folder"]]; 
NSString *fileName=[tempDictLitrature objectForKey:@"name"]; 
[self.navigationItem setTitle:fileName]; 
NSString *type=[tempDictLitrature objectForKey:@"type"]; 

NSString *path=[[NSBundle mainBundle]pathForResource:fileName ofType:type inDirectory:folderName]; 

NSURL *targetURL = [NSURL fileURLWithPath:path]; 
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
webView=[[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 1024, 730)]; 
[webView setBackgroundColor:[UIColor lightGrayColor]]; 
webView.scalesPageToFit = YES; 

[[webView scrollView] setContentOffset:CGPointZero animated:YES]; 
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(0.0, 50.0)"]]; 
[webView loadRequest:request]; 
[self.view addSubview:webView]; 
+0

Per prima cosa crea il percorso del tuo pdf e convertilo in url e usa questo codice per caricare la vista web, funziona per me quindi per favore usa lo stesso nel tuo codice – dheerendra

2

Un aggiornamento per la risposta di Martin Alléus, per ottenere il pieno schermo se si tratta di un telefono cellulare o un iPad senza dover codificare:

CGRect rect = [[UIScreen mainScreen] bounds]; 
CGSize screenSize = rect.size; 
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,screenSize.width,screenSize.height)]; 

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

[self.view addSubview:webView]; 
9

Webviews può anche caricare il pdf utilizzando loadData metodo, se si acquista come NSData:

[self.webView loadData:self.pdfData 
       MIMEType:@"application/pdf" 
     textEncodingName:@"UTF-8" 
       baseURL:nil]; 
2

versione Swift:

if let docPath = NSBundle.mainBundle().pathForResource("sample", ofType: "pdf") { 
    let docURL = NSURL(fileURLWithPath: docPath) 
    webView.loadRequest(NSURLRequest(URL: docURL)) 
} 
1
NSString *path = [[NSBundle mainBundle] pathForResource:@"document" ofType:@"pdf"]; 
NSURL *targetURL = [NSURL fileURLWithPath:path]; 
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
[webView loadRequest:request]; 
0
UIWebView *pdfWebView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10, 200, 200)]; 

NSURL *targetURL = [NSURL URLWithString:@"http://unec.edu.az/application/uploads/2014/12/pdf-sample.pdf"]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
    [pdfWebView loadRequest:request]; 
    [self.view addSubview:pdfWebView]; 
0

Swift 4

 let webView = UIWebView(frame: view.bounds) 
    let targetURL = Bundle.main.url(forResource: "sampleFileName", withExtension: "pdf") 
    let request = URLRequest(url: targetURL!) 
    webView.loadRequest(request) 
    view.addSubview(webView)