如何通过iPhone上的应用程序保存和查看pdf文件?

时间:2009-08-04 06:25:44

标签: iphone objective-c sqlite uiwebview

我正在尝试在SQLite中保存pdf文件。我认为将pdf文件保存为blob是可能的。问题从这里开始,如何在iPhone应用程序中查看该文件? 我知道可以使用以下代码完成: -

 @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]];
    }

但是pdfUrl的价值应该是什么,我很困惑...... 如果我从数据库中检索它,它将采用blob格式(methinks),那么如何将其转换为NSdata对象?

谢谢大家。

2 个答案:

答案 0 :(得分:3)

问题是WebView执行URL加载,并且它不会理解非http请求之类的内容;但您的应用程序正在尝试提供数据。所以基本上,你运气不好,除非你可以将sqbite数据库中的blob反序列化,将其写入文件(在/ tmp中,比如说),然后从NSWebView打开一个file:/// URL - 但是我不相信这个对象会让你这样做。

可能能够调用[UIWebView loadData:MIMEType:textEncodingName:baseURL:]方法,这将允许您从sqllite数据库中提取NSData blob,提供mime类型application / pdf,坚持使用虚拟文本编码(UTF-8)和基本URL,然后它可以做你想要的。但我至少会尝试这样做。

答案 1 :(得分:1)

pdfUrl是您尝试从网站下载的PDF的网址。 (即http://website.com/mypdf.pdf

阅读有关NSData的文档,它有一个方法可以让你根据你使用sqlite提取的内容来创建NSData对象。