iOS MUPDF集成及开发(干货!)

MUPDF的集成

网上一搜一大把的MUPDF集成教程,大致步骤如下:
1.git上下载代码
2.运行 mupdf -> platform -> ios 文件夹下就可以运行官网的demo

  1. Build目录下会生成对应各种架构的静态库
    4.将该目录下的.a文件复制到我们的项目当中
    5.include目录整个导入到项目中
    注意:官网提供的demo是MRC,若是集成到的项目使用ARC则需要进行混编
    6.然年就可以调用了。。。。

具体可以看一下MUPDF集成详情步骤

我找到一种简单的集成方法

1.直接在项目中通过cocopod 下载 MuPDF
pod 'MuPDF'

注意:
通过cocopod下载的MuPDF是不全的,有丢失图片文件

这些图标都没有

图片的设置地址:

图片的设置地址

你可以自定义图片

你会发现一个大BUG:无法搜索!!

搜索的关键代码

你需要把这里的代码修改成上面的代码!

fz_page *page = fz_load_page(ctx, doc, number);
    fz_rect mediabox;
    fz_stext_sheet *sheet = fz_new_stext_sheet(ctx);
    fz_stext_page *text = fz_new_stext_page(ctx, fz_bound_page(ctx, page, &mediabox));
    fz_device *dev = fz_new_stext_device(ctx, sheet, text, NULL);
    fz_run_page(ctx, page, dev, &fz_identity, cookie);
    fz_close_device(ctx, dev);
    fz_drop_device(ctx, dev);
    
    hit_count = fz_search_stext_page(ctx, text, needle, hit_bbox, nelem(hit_bbox));
    
    fz_drop_stext_page(ctx, text);
    fz_drop_stext_sheet(ctx, sheet);
    fz_drop_page(ctx, page);
    
    return hit_count;

现在的MuPDF就是一个完美的代码的了!!

MuPDF 在项目中使用!!

  • 导入头文件
导入头文件
#import "mupdf/MuDocRef.h"
#import "mupdf/MuDocumentController.h"
#include "mupdf/fitz.h"
#include "mupdf/common.h"
  • 限制文件大小
文件大小
enum
{
    ResourceCacheMaxSize = 128<<20  /**< use at most 128M for resource cache */
};

  • 关键代码
关键代码
queue = dispatch_queue_create("com.artifex.mupdf.queue", NULL);

    screenScale = [[UIScreen mainScreen] scale];

    ctx = fz_new_context(NULL, NULL, ResourceCacheMaxSize);
    fz_register_document_handlers(ctx);

    NSString *file = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"pdf"];
    MuDocRef *doc;

    doc = [[MuDocRef alloc] initWithFilename:file];
    if (!doc) {
        NSLog(@"Cannot open document '%@'", file);
        return YES;
    }

    MuDocumentController *document = [[MuDocumentController alloc] initWithFilename:file path:file document: doc];

这样就可以了,打开PDF的时候带着文件名跳转到这个控制器就可以了!

大功告成!!

这是缺失图片:

链接:https://pan.baidu.com/s/1TBrSYKbcr6SWjDsTbvk0Rw 密码:zn1p

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,752评论 25 709
  • Swift 01 Swift最基本的语法变化 Swift 变量&常量 变量使用 let 定义常量,定义后的常量不能...
    J_Pisces阅读 1,733评论 1 1
  • 我没历经过北漂的忧愁与迷惘,对你行走的孤单和离去的不舍无法感同身受。 我知道你只是在一首歌里找到了自己。 但你又是...
    关山朝里阅读 5,472评论 0 0
  • 今天难得有空闲的时间,但是都给了iPad里的王者荣耀。说实话,很心痛,但又管不住自己,明明知道需要努力才能去改变现...
    大可木木林阅读 1,184评论 0 0

友情链接更多精彩内容