因为公司的某个项目业务需求,需要用的MUPDF开源库,由于MUPDF并没有直接提供编译好的SO文件,上网找的都是别人家编译过的SO,其中里面不够满足业务自身要求,所有需要我们进行手动编译,本人是继续上一篇进一步讲述。
【mupdf】MuPDF手写墨迹,默认保存的墨迹是红色的,怎么修改颜色?如何更改mupdf的颜色绘图?
1.本人的工具和环境情况
Win10_64位 16G内存 250G固态硬盘 1T硬盘
文件MUPDF1.10 (地址: 点击打开链接)
软件Cygwin(安装:点击打开链接)
2.make generate
Win+R 输入 Cmd 进入到我们制定根目录进行执行make generate命令,会自动生成上图的generated文件夹
3.修改文件配置
进入platform\android\viewer目录下,打开local.properties.sample配置Android SDK和NDK的路径,文件改名为local.properties。
#define JNI_FN(A) Java_com_artifex_mupdfdemo_ ## A
#define PACKAGENAME “ com/artifex/mupdfdemo”
修改成我们的MUPDF所在的包名。
打开Application.mk选择我们需要打包的平台。
4.ndk-build
Microsoft Windows [版本 10.0.16299.431]
(c) 2017 Microsoft Corporation。保留所有权利。
C:\Users\64178>ndk-build
Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
E:\Program\Android\Ndk\android-ndk-r17\build\\..\build\core\build-local.mk:151: *** Android NDK: Aborting . Stop.
C:\Users\64178>D:
D:\>cd D:\mupdf-1.10-source\platform\android\viewer
D:\mupdf-1.10-source\platform\android\viewer>ndk-build
Android NDK: android-8 is unsupported. Using minimum supported version android-14.
Android NDK: WARNING: APP_PLATFORM android-14 is higher than android:minSdkVersion 8 in ./AndroidManifest.xml. NDK binaries will *not* be compatible with devices older than android-14. See https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md for more information.
Android NDK: WARNING:jni/Android.mk:mupdfcore: LOCAL_LDLIBS is always ignored for static libraries
[armeabi-v7a] Compile thumb : mupdf_java32 <= mupdf.c
[armeabi-v7a] Compile thumb : mupdf_java32 <= mupdf_native.c
[armeabi-v7a] Compile thumb : mupdfcore <= archive.c
[armeabi-v7a] Compile thumb : mupdfcore <= bbox-device.c
[armeabi-v7a] Compile thumb : mupdfcore <= bidi-std.c
...
[armeabi-v7a] Compile thumb : mupdfthirdparty <= ftsynth.c
[armeabi-v7a] Compile thumb : mupdfthirdparty <= ftsystem.c
[armeabi-v7a] Compile thumb : mupdfthirdparty <= fttype1.c
[armeabi-v7a] Compile thumb : mupdfthirdparty <= cff.c
[armeabi-v7a] Compile thumb : mupdfthirdparty <= type1cid.c
[armeabi-v7a] Compile thumb : mupdfthirdparty <= psaux.c
[armeabi-v7a] Compile thumb : mupdfthirdparty <= pshinter.c
[armeabi-v7a] Compile thumb : mupdfthirdparty <= psnames.c
[armeabi-v7a] Compile thumb : mupdfthirdparty <= raster.c
[armeabi-v7a] Compile thumb : mupdfthirdparty <= smooth.c
[armeabi-v7a] Compile thumb : mupdfthirdparty <= sfnt.c
[armeabi-v7a] Compile thumb : mupdfthirdparty <= truetype.c
[armeabi-v7a] Compile thumb : mupdfthirdparty <= type1.c
[armeabi-v7a] StaticLibrary : libmupdfthirdparty.a
[armeabi-v7a] StaticLibrary : libstdc++.a
[armeabi-v7a] SharedLibrary : libmupdf_java32.so
[armeabi-v7a] Install : libmupdf_java32.so => libs/armeabi-v7a/libmupdf_java32.so
D:\mupdf-1.10-source\platform\android\viewer>
打开cmd,进入Viewer目录(不是JNI目录也不是上一级,切记),执行ndk-build ,静等几分钟,大功告成。
5.Android实际运用
libmupdf_java32.so名称改成 libmupdf_java.so
手写的墨迹,终于保存成为我想要的黑色啦嘿嘿,红色的不需要,而且保障书写批注精准的定位。提别注意:这个文件保存上次到服务端打印是没有字迹显示的,还需要自行修改源代码C语言中设置是否打印输出打印批注信息。