Iphone 在UIWebview中打开存储在Sqlite中的NSData(PDF内容)

Iphone 在UIWebview中打开存储在Sqlite中的NSData(PDF内容),iphone,objective-c,ios,Iphone,Objective C,Ios,我想在webview中打开pdf文件,但这里的场景不同,我已将pdf内容作为NSData保存到sqlite表中(blob数据类型),我在将数据插入sqlite表时获得了成功,但一旦我将blob内容提取到NSData中并尝试将该数据打开到WebView中,就会出现错误-未能找到PDF标题:`PDF'未找到。 我正在使用webview的loadData方法来加载数据 [webView loadData:data MIMEType:@"application/pdf" textEncodingName

我想在webview中打开pdf文件,但这里的场景不同,我已将pdf内容作为NSData保存到sqlite表中(blob数据类型),我在将数据插入sqlite表时获得了成功,但一旦我将blob内容提取到NSData中并尝试将该数据打开到WebView中,就会出现错误-未能找到PDF标题:`PDF'未找到。
我正在使用webview的loadData方法来加载数据
[webView loadData:data MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];
我做了很多搜索,也问了其他堆栈溢出问题,但没有找到足够的答案。

谢谢,

Mayur

您是否尝试将NSData转换为NSString,然后将其转储到控制台?PDF文件必须以“%PDF-1.2…”开头,您必须确保sqlite中的blob数据是完整的PDF内容。

任何PDF文件的前四个字节都是
%PDF
。这告诉您,当您试图显示数据时,它不是PDF文件(或者如果是,则开头已被截断)


要么将损坏的数据放入SQLite数据库,要么在取出数据时将其损坏。通过使用命令行工具查看数据库中的数据,应该可以很容易地确认其中一种方式。

如果要从webview打开要打印的文件,则需要使用UIPrintViewFormatter的方法“viewPrintFormatter”将webview分配给格式化程序。然后将UIPrintViewFormatter实例添加到UIPrintInteractionController实例中

以下是如何使用UIPrintViewFormatter的示例:

 UIViewPrintFormatter *viewPrintFormatter = [self.contentWebView  viewPrintFormatter];
[printInteractionController setPrintFormatter:viewPrintFormatter];

谢谢,我在将数据插入数据库时犯了一个错误,当我用char指针数据类型传递数据字节时,它就工作了!我将建议其他用户使用FBDatabase framework-您可以在此处获取framework-[FMDatabase executeUpdate:@“插入到DataTest值(?)、数据,无];完成了。您好,我在将NSData转换为PDF文件时遇到了同样的问题。如果您可以发布解决方案代码,这将非常有用。