android – mupdf:如何用openBuffer方法打开pdf文件?

android – mupdf:如何用openBuffer方法打开pdf文件?,第1张

概述不幸的是,我还没有找到关于这一点的任何文件,所以也许我做错了什么. 我使用mupdf示例用于android,我稍微修改了MuPDFActivity的源代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mAlertBuilder = ne 不幸的是,我还没有找到关于这一点的任何文件,所以也许我做错了什么.

我使用mupdf示例用于android,我稍微修改了MupdfActivity的源代码:

public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        mAlertBuilder = new AlertDialog.Builder(this);        if (core == null) {            core = (MuPdfcore)getLastNonConfigurationInstance();            if (savedInstanceState != null && savedInstanceState.containsKey("filename")) {                mfilename = savedInstanceState.getString("filename");            }        }        if (core == null) {            Intent intent = getIntent();            byte buffer[] = null;            if (Intent.ACTION_VIEW.equals(intent.getAction())) {                Uri uri = intent.getData();                try {                    inputStream inputStream = new fileinputStream(new file(uri.toString()));                    int len = inputStream.available();                    buffer = new byte[len];                    inputStream.read(buffer,len);                    inputStream.close();                } catch (Exception e) {                    Log.e(TAG,e.getMessage());                }                if (buffer != null) {                    core = openBuffer(buffer);                } else {                    core = openfile(Uri.decode(uri.getEncodedpath()));                }                SearchTaskResult.set(null);            }

活动的openBuffer()方法尚未更改:

private MuPdfcore openBuffer(byte buffer[]) {        System.out.println("Trying to open byte buffer");        try {            core = new MuPdfcore(this,buffer);            // New file: drop the old outline data            OutlineActivityData.set(null);        } catch (Exception e) {            System.out.println(e);            return null;        }        return core;}

在我尝试打开任何pdf后,应用程序会显示警告,并显示消息“无法打开文档”.这是日志:

03-21 10:43:14.754    3601-3601/com.artifex.mupdfdemo.deBUG E/libmupdf﹕ opening document...03-21 10:43:14.754    3601-3601/com.artifex.mupdfdemo.deBUG E/libmupdf﹕ error: No document handlers registered03-21 10:43:14.754    3601-3601/com.artifex.mupdfdemo.deBUG E/libmupdf﹕ error: Cannot open memory document03-21 10:43:14.754    3601-3601/com.artifex.mupdfdemo.deBUG E/libmupdf﹕ Failed: Cannot open memory document

那么,是否有任何方法可以将pdf文件作为字节数组打开,这是什么方式?

解决方法 我的猜测是你使用的是一个早于主库文件版本的androID jni文件mupdf.c.库API发生了变化,需要在创建上下文和调用fz_open_document之间调用fz_register_document_handlers(ctx).您看到的第一条错误消息表明未调用fz_register_document_handlers 总结

以上是内存溢出为你收集整理的android – mupdf:如何用openBuffer方法打开pdf文件?全部内容,希望文章能够帮你解决android – mupdf:如何用openBuffer方法打开pdf文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存