美文网首页iOS杂技
iOS展示PDF发票显示印章

iOS展示PDF发票显示印章

作者: LINGSHOW | 来源:发表于2020-01-10 13:59 被阅读0次

    近期公司项目需要优化展示PDF发票的功能,之前是直接用UIWebView展示PDF发票数据,印章无法展示出来,所以保存功能也是废的。

    刚开始通过文章了解到,使用系统框架QLPreviewController展示PDF发票在iOS13上没有问题,可以展示印章,但是评论区说在iOS10以下,无法展示印章,而且需要做PDF文件本地缓存,步骤比较繁琐,所以打算另辟蹊径。

    果不其然,一番折腾后,发现让后台先把PDF发票的数据转为base64图片,再返回给前端展示,这个方案可行。

    最终iOS这边选择用以下方式展示base64编码的图片

    // 这里的变量 dataURIStr 形如字符串 ,dataURLStr:base64编码图片@"data:image/png;base64,iVBORw0KGgoAy ... RK5CYII="
    NSURL *imgURL = [NSURL URLWithString:dataURIStr];
    NSData *imgData = [NSData dataWithContentsOfURL:imgURL];
    UIImage *img = [UIImage imageWithData:imgData];

    还有一种展示方案如下,该方法不需要拼接前缀格式,比较方便。

    // 这里的变量 base64ImgStr 形如字符串 @"iVBORw0KGgoAy ... RK5CYII=",即图片经 base64 编码后所得的字符串
    NSData *imgData = [[NSData alloc] initWithBase64EncodedString:base64ImgStr options:0];
    UIImage *img = [UIImage imageWithData:imgData];

    参考文献

    iOS 解决展示PDF电子签章不显示问题
    iOS展示base64编码的图片

    相关文章

      网友评论

        本文标题:iOS展示PDF发票显示印章

        本文链接:https://www.haomeiwen.com/subject/myppactx.html