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

目前,本人在公司研究一个项目,就是根据在MuPDF上面进行批注的功能,源码中的墨迹(Ink)。在Android中实现针对pdf文件进行功能【文件浏览、颜色变换、笔记粗细等等】功能。但是,我也遇到了和码友所诉的问题:点击打开链接

MuPDF 手写功能的时候,画笔颜色可以自己定义,不管把颜色定义成什么,当调用MuPDFCore.save时,保存笔记,笔记的颜色显示默认红色的,也有大神把mupdf源码分析了一遍,默认颜色就是红色,不知道怎么改?

坑了我好几天时间,现在我来讲些,顺便做个笔记。

两种方案:
第一种,直接修改mupdf里面的color数组,然后编译mupdf so包
第二种,修改方法,添加color参数,然后编译mupdf so包
两种方式,均需要编译mupdf库。

说是这么说,但是改哪里,那个文件呢?我找了大半天......

签名时候可以任意颜色可以设置,但是保存时候就是红色。发现源代码C语言中定性的为红色。MuPDF1.10 点击打开链接

查看源代码mupdf-1.10-source/platform/android/viewer/jni/mupdf.c中的函数MuPDFCore_addInkAnnotationInternal。在那里你会看到颜色被线条硬化为红色:

JNI_FN(MuPDFCore_addInkAnnotationInternal)(JNIEnv * env, jobject thiz, jobjectArray arcs)
{
	color[0] = 1.0;
	color[1] = 0.0;
	color[2] = 0.0;
	color[3] = 0.0;

如果你只是想将它硬连接到黑色,则将1.0更改为0.0。然后,签字的文件上传到服务端准备打印,你会发现打印的时候打印不出批注(签字信息)信息。

如果希望生成的Ink注释显示在PDF的打印版本中,然后在pdf-annot.c【我在pdf-annot-edit.c】文件中的pdf_create_annot函数中中,则应添加以下行:
pdf_dict_puts_drop(annot_obj, "F", pdf_new_int(doc, F_Print));
行后:
pdf_dict_puts_drop(annot_obj, "Rect", pdf_new_rect(doc, &rect));

我刚刚重新编译这个,出现问题待处理:

[armeabi-v7a] Compile thumb  : mupdfcore <= writer.c
[armeabi-v7a] Compile thumb  : mupdfcore <= xml.c
[armeabi-v7a] Compile thumb  : mupdfcore <= zip.c
[armeabi-v7a] Compile thumb  : mupdfcore <= pdf-annot-edit.c
jni/../../../../source/pdf/pdf-annot-edit.c:98:55: error: use of undeclared identifier 'F_Print'
                pdf_dict_puts_drop(annot_obj, "F", pdf_new_int(doc, F_Print));
                                                                    ^
jni/../../../../source/pdf/pdf-annot-edit.c:99:64: error: too few arguments to function call, expected 3, have 2
                pdf_dict_puts_drop(annot_obj, "Rect", pdf_new_rect(doc, &rect));
                                                      ~~~~~~~~~~~~           ^
../../../include\mupdf/pdf/object.h:24:1: note: 'pdf_new_rect' declared here
pdf_obj *pdf_new_rect(fz_context *ctx, pdf_document *doc, const fz_rect *rect);
^
2 errors generated.
make: *** [obj/local/armeabi-v7a/objs/mupdfcore/__/__/__/__/source/pdf/pdf-annot-edit.o] Error 1

D:\mupdf-1.10-source\platform\android\viewer>

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

掘金者说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值