【mupdf笔记02】MUPDF编译SO包详细步骤,针对墨迹默认红色更改成黑色处理

因为公司的某个项目业务需求,需要用的MUPDF开源库,由于MUPDF并没有直接提供编译好的SO文件,上网找的都是别人家编译过的SO,其中里面不够满足业务自身要求,所有需要我们进行手动编译,本人是继续上一篇进一步讲述。

【mupdf】MuPDF手写墨迹,默认保存的墨迹是红色的,怎么修改颜色?如何更改mupdf的颜色绘图?

(PS:开发Java,热情Android,探讨C\C++,感谢Google)

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。 


打开mupdf.c找到如下: 
#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语言中设置是否打印输出打印批注信息。



猜你喜欢

转载自blog.csdn.net/u010638673/article/details/80577631