【问题标题】:PDF Images not displaying in UIWebViewPDF 图像未在 UIWebView 中显示
【发布时间】:2019-04-07 06:48:32
【问题描述】:

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

逻辑的方式是, 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 应用程序预览再次导出 pdf 文件
  3. 再次将文件转换为base64字符串并显示在UIWebView上

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

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

所以我的问题是,

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

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

【问题讨论】:

    标签: ios objective-c pdf pdfkit


    【解决方案1】:

    b64 是 NSString 类型

    initWithBase64EncodedData:b64 options:nil 需要作为第一个参数 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。

    【讨论】:

    • 嗨@ivion,这两种解决方案仍然没有显示图像
    • 一种可能性:[uiWebview loadData: d MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];还是“数据”只是查询中的错字?
    • 嗨,Ivion,检查一下不是那个问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 1970-01-01
    相关资源
    最近更新 更多