8

我正在尝试通过UIWebView如下所示在我的 iPad 应用程序中显示 PDF。

NSData * responseData = [NSURLConnection sendSynchronousRequest:mutableUrlRequest returningResponse:nil error:nil];
[pdfWebView loadData:responseData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil]; 

但这不起作用。是正确的展示方式吗?如果没有人可以指导我在 UIWebView 或任何其他有用的方法中显示 PDF。

谢谢 !

4

6 回答 6

23

得到了我的问题的答案。下面的行会变魔术。

 [webview loadData:PdfContent MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];
于 2013-10-09T07:50:49.530 回答
4

斯威夫特3

webView.load(data, mimeType: "application/pdf", textEncodingName: "UTF-8", baseURL: URL(string: "You can use URL of any file in your bundle here")!)
于 2017-08-04T09:20:55.377 回答
2

将其保存到临时目录中带有 PDF 后缀的文件中,然后从那里打开它。

于 2013-06-06T17:13:32.847 回答
2

如何将 NSData(PDF 文件)保存到文档目录中:

NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *documentFolderPath = [searchPaths objectAtIndex: 0];
    NSString *imagePath = [documentFolderPath stringByAppendingPathComponent:@"yourPdfFileName.pdf"];

NSFileManager *filemanager=[NSFileManager defaultManager];
    if(![filemanager fileExistsAtPath:filePath])
        [[NSFileManager defaultManager] createFileAtPath:filePath   contents: nil attributes: nil];

    NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:filePath];

    [handle writeData:data];
于 2013-06-08T02:45:46.637 回答
0

如果您的应用程序捆绑了一个 PDF 文件(在此示例中名为“document.pdf”):

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

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

[self.view addSubview:webView];
[webView release];

您可以在此处找到更多信息:技术 QA1630:UIWebView用于显示选择的文档类型。

于 2013-06-06T18:05:54.607 回答
0

您没有使用 Quick Look Framework 或 UIDocumentInteractionController 的任何原因?它们能够为用户提供比 WebView 更多的功能和更少的混乱。

以下是 Apple 文档的链接:https ://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/DocumentInteraction_TopicsForIOS/Articles/UsingtheQuickLookFramework.html

https://developer.apple.com/library/ios/documentation/uikit/reference/UIDocumentInteractionController_class/Reference/Reference.html

如果您希望从应用程序的文件系统呈现 PDF,则无需担心!只需确保您存储的 pdf 具有正确的“.pdf”扩展名,然后以完整路径将其提供给 QLPreviewController:

self.contentURL = [NSURL fileURLWithPath:fullPath];
于 2013-11-05T23:48:24.673 回答