2012-04-02 59 views
3

我想在webview中打開pdf文件,但情況不同,我將pdf內容保存爲NSData到sqlite表(blob數據類型),我成功了當我將數據插入到sqlite表中時,但是一旦我將Blob內容讀入NSData並嘗試將該數據打開到WebView中,它會給我錯誤 - 未能找到PDF標頭:找不到'%PDF'。
我正在使用webview的loadData方法來加載數據在UIWebview中打開存儲在Sqlite中的NSData(PDF內容)

[webView loadData:data MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];
我做了大量的搜索,並通過其他堆棧溢出問題,但沒有找到足夠的答案。

感謝,
MAYUR

+0

嗨,我面臨同樣的問題,而轉換的NSData爲PDF文件。如果你可以發佈您的解決方案的代碼,這將是有幫助的。 – 2014-02-19 06:36:03

回答

1

任何PDF文件的前四個字節是%PDF。這是告訴你,當你試圖顯示數據時,它不是一個PDF文件(或者如果它是,開始已經被砍掉)。

您要麼將損壞的數據放入SQLite數據庫中,要麼在將它弄出來時將其破壞。通過使用命令行工具查看數據庫中的數據,確定這種或那種方式應該很容易。

+0

謝謝,我做錯誤插入數據到數據庫,它工作時,我傳遞數據字節與字符指針數據類型! – 2012-04-03 06:52:15

+0

我會建議其他用戶使用FBDatabase框架 - http://www.gusmueller.com/blog/archives/2005/3/22.html,你可以在這裏獲得框架 - https://github.com/ccgus/fmdb – 2012-04-03 07:02:38

+0

[FMDatabase executeUpdate:@「insert into DataTest values(?)」,data,nil];做了這份工作。 – 2012-04-03 07:03:27

1

你試過轉儲轉換NSData的到的NSString,然後傾倒安慰? PDF文件必須以「%PDF-1.2 ......」開頭,您必須確保來自sqlite的blob數據是完整的pdf內容。

0

如果您打開一個要從webview打印的文件,您希望使用UIPrintViewFormatter的方法'viewPrintFormatter'將您的webview分配給格式化程序。然後,您可以將UIPrintViewFormatter的實例添加到UIPrintInteractionController的實例中。

下面是如何使用UIPrintViewFormatter一個例子:

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