我正在尝试从webservice端点下载pdf内容,该内容将以二进制形式出现。解码到base64后,我将解码后的文件附加到webview,其中显示无法找到pdf标题错误。
有谁知道如何解决此错误?我错过了这里的任何一步吗?
感谢。
答案 0 :(得分:3)
尝试添加类似
的内容NSData *dataContent; // response data.
CFDataRef myPDFData;
myPDFData = (CFDataRef)dataContent;
CGDataProviderRef provider = CGDataProviderCreateWithCFData(myPDFData);
pdfDocument = CGPDFDocumentCreateWithProvider(provider);
CGDataProviderRelease(provider);
然后将pdfDocument加载到您的webview中。
或者看看制作自定义的zoomPDFViewer。 Apple在http://developer.apple.com/library/ios/#samplecode/ZoomingPDFViewer/Introduction/Intro.html有一个很好的例子,这就是我所做的,因为我无法在webview中正确加载pdfdocument。
答案 1 :(得分:2)
我在开发阅读pdf的应用程序时出现此错误,问题是您在调用它的地方不存在PDF。正在返回的二进制数据是您的Web服务正在调用的错误响应。例如,如果我在:
请求pdf文档如果该文件在该地址不存在,那么我将得到错误响应,这就是返回的二进制数据。
答案 2 :(得分:0)
如果您使用SAP Web服务,这是解决方案: 在SAP System中有一种方法可以将二进制数据(XSTRING)转换为Base64: cl_http_utility => encode_x_base64 使用http可以传输Base64数据。 在xcode中我使用了这个库: a link
// 3) Decode Base 64
// Then you can put that back like this
NSData *b64DecData = [Base64 decode:b64EncStr];
然后:[webDisplay loadData:b64DecData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];