2009-08-04 6 views
0

Ich versuche eine PDF-Datei in SQLite zu speichern. Ich denke, es wird möglich sein, indem Sie die PDF-Datei als Blob speichern. Und das Problem beginnt hier, wie man diese Datei jetzt in der iPhone App sieht? Ich weiß, es kann mit diesem Code durchgeführt werden: -Wie kann ich eine PDF-Datei über eine App auf dem iPhone speichern und anzeigen?

@interface PDFViewController : UIViewController { 
     UIWebView *webView; 
     NSURL *pdfUrl; 
    } 

    @property (nonatomic, retain) IBOutlet UIWebView *webView; 
    @property (nonatomic, retain) NSURL *pdfUrl; 

    @end 



@implementation PDFViewController 

@synthesize webView, pdfUrl; 
    - (void)viewDidLoad { 
     [super viewDidLoad]; 
     // Tells the webView to load pdfUrl 
     [webView loadRequest:[NSURLRequest requestWithURL:pdfUrl]]; 
    } 

Aber was der Wert der pdfUrl sein sollte, ich bin verwirrt ... Und wenn ich es von der DB abrufen wird es in einem Klecks sein Format (methinks) also, wie man es in ein NSdata Objekt umwandelt?

Vielen Dank.

Antwort

3

Das Problem ist, dass WebView lädt die URL, und es versteht nicht wie non-HTTP-Anfragen; Ihre Anwendung versucht jedoch, die Daten zu liefern. Im Grunde genommen haben Sie kein Glück, es sei denn, Sie können den Blob aus der sqlite-Datenbank deserialisieren, in eine Datei schreiben (in/tmp, sagen wir) und dann eine Datei: /// URL aus dem NSWebView öffnen - aber Ich glaube nicht, dass dich das Objekt dazu bringen wird.

Sie könnte Lage sein, die aufzurufen [UIWebView loaddata: Mimetype: textEncodingName: baseURL:] Methode, die es Ihnen ermöglichen, den NSData Klecks aus der SQLLite Datenbank zu extrahieren, einen MIME-Typ application/pdf liefern, Bleiben Sie in einer Dummy-Text-Codierung (UTF-8) und einer Basis-URL, und dann könnte es tun, was Sie wollen. Aber ich wäre versucht, das zumindest zu versuchen.

+0

Hallo AlBlue, Wenn ich die PDF-Datei aus der Datenbank abrufen, dient es nicht als URL, was sollte der baseURL-Parameter sein.? – SocialCircus

1

Die pdfUrl ist die Webadresse des PDF-Dokuments, das Sie von der Website herunterladen möchten. (ie)

Lesen Sie die Dokumentation zu NSData, es hat eine Methode, mit der Sie NSData-Objekte basierend darauf erstellen können, was Sie mit sqlite herausziehen.