java - 注释android后的MuPdf保存文件

标签 java android mupdf

我正在使用 mupdf 库进行注释。当我们在 mupdfactivity 上按下注释后,下面的代码就写好了

@Override
public void onBackPressed() {
    if (core != null && core.hasChanges()) {
        DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                if (which == AlertDialog.BUTTON_POSITIVE)
                    core.save();

                finish();
            }
        };
        AlertDialog alert = mAlertBuilder.create();
        alert.setTitle("Save Changes");
        alert.setMessage(getString(R.string.document_has_changes_save_them_));
        alert.setButton(AlertDialog.BUTTON_POSITIVE,
                getString(R.string.yes), listener);
        alert.setButton(AlertDialog.BUTTON_NEGATIVE,
                getString(R.string.no), listener);
        alert.show();
    } else {
        super.onBackPressed();
    }
}

但是当我点击 core.save() 方法时,它会将我重定向到 MuPdfCore.java 中的 native 函数体。

private native void saveInternal();

我想更改保存文件的路径。搜索这个方法的实现,哪里可以找到save方法的实现?有没有人做过这方面的工作?

提前致谢

最佳答案

您可以在 platform/android/jni/mupdf.c 中找到您正在查找的函数以及从 Java 端调用的所有其他 native 函数。

您可以通过将其声明更改为来修改此函数以接受新路径

JNI_FN(MuPDFCore_saveAsInternal)(JNIEnv *env, jobject thiz, jstring jpath)

然后可以通过如下声明使 Java 端可以访问该函数

private native int saveAsInternal(String path);

在类 MuPDFCore 中。

在 C 代码中,您可以通过类似的方式获取作为 Java 字符串传递的路径

const char *new_path = NULL;                                                            
if (jpath != NULL) {
    public static native boolean javascriptSupported();
    new_path = (*env)->GetStringUTFChars(env, jpath, NULL);
}

希望对您有所帮助。

关于java - 注释android后的MuPdf保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33007540/

相关文章:

java - 对象Java的深拷贝

java - 获取某个正则表达式中字符串的值

java - 如何从内部类中获取对象

android - 如果我从应用程序 A 将私钥存储在 KeyStore 中,是否可以从应用程序 B 检索相同的 key ?

android - android 中的 httprequest 失败并且异常为空

java - JUnit 在 Linux 上安装失败

android - 获取内部存储路径以使用 MUPDF 打开复制的 PDF

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

android - 编译 MuPDF

java - pig : Output 1 column