iOS MUPDF集成及开发(干货!)
2018-03-14 本文已影响58人
睿少
MUPDF的集成
网上一搜一大把的MUPDF集成教程,大致步骤如下:
1.git上下载代码
2.运行 mupdf -> platform -> ios 文件夹下就可以运行官网的demo
- 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的时候带着文件名跳转到这个控制器就可以了!
大功告成!!
这是缺失图片: