美文网首页程序员每天写1000字每周500字
iOS MUPDF集成及开发(干货!)

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

作者: 睿少 | 来源:发表于2018-03-14 15:57 被阅读58次

    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

    相关文章

      网友评论

        本文标题:iOS MUPDF集成及开发(干货!)

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