PDF图像未显示在UIWebView中

时间:2018-11-03 04:47:24

标签: ios objective-c pdf pdfkit

我遇到了无法在UIWebView中显示PDF图像的问题

逻辑的方式是  1. UIWebView接收base64字符串  2.将字符串转换为NSData  3.将NSData加载到UIWebView

这是代码的一部分

NSString *b64 = @"JVBERi0xLjMNCiW9vrwNCjEgMCBvYmoNCjw8DQoJL0Jhc2VGb25...."; 
NSData *d =[[NSData alloc] initWithBase64EncodedString:b64 options:nil];
[uiWebview loadData:d MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];

有一个解决方法,我设法在UIWebView中显示图像,解决方法是

  1. 将base64字符串复制到在线转换器中,以将其转换为pdf文件
  2. 使用“导出为PDF”使用Mac Application Preview重新导出该pdf文件
  3. 再次将文件转换为base64字符串,并显示在UIWebView上

但是这种解决方法不可行,因为我的应用程序中没有预览应用程序

我还注意到,在“预览”应用程序中“导出为PDF”之前,该pdf是可编辑的,例如可以拖动或删除图像。

所以我的问题是,

  1. 我是否错误地实现了UIWebView代码?

  2. iOS应用程序是否有“以PDF格式导出”的库?我确实在PDFKit上进行了探索,但是它确实具有任何导出功能

1 个答案:

答案 0 :(得分:0)

b64的类型为NSString

initWithBase64EncodedData:b64选项:无需要作为第一个参数NSData。

尝试:

NSString *b64 = @"JVBERi0xLjMNCiW9vrwNCjEgMCBvYmoNCjw8DQoJL0Jhc2VGb25...."; 
NSData *d =[[NSData alloc] initWithBase64EncodedString:b64 options:nil];
[uiWebview loadData:data MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];

或尝试:

[[PDFDocument alloc] initWithData: d];

从base64字符串中获取Pdf。