mupdf加载PDF显示中文乱码

现象

加载PDF显示乱码,提示非嵌入字体

bash 复制代码
 non-embedded font using identity encoding

调式

在pdf-font.c中加载字体

调试源码发现pdf文档的字体名字居然是GBK,估计又是哪个windows下写的pdf生成工具生成pdf

字体方法:

c 复制代码
static pdf_font_desc *
load_cid_font(fz_context *ctx, pdf_document *doc, pdf_obj *dict, pdf_obj *encoding, pdf_obj *to_unicode)

具体加载

c 复制代码
 pdf_to_name(ctx, pdf_dict_get(ctx, dict, PDF_NAME(BaseFont)));

解决

转码发现是宋体,简单判断转换下

c 复制代码
  unsigned char utf8SimSun[]={0xe5,0xae,0x8b,0xe4,0xbd,0x93};
  unsigned char gbkSimSun[]={0xcb,0xce,0xcc,0xe5};
cpp 复制代码
     if(0 == memcmp(basefont,utf8SimSun,sizeof(utf8SimSun))){
             fz_warn(ctx, "basefont:宋体UTF8");
             basefont = "SimSun";
        }
        if(0 == memcmp(basefont,gbkSimSun,sizeof(gbkSimSun))){
            fz_warn(ctx, "basefont:宋体GBK");
            basefont = "SimSun";
        }

PDF字体查看

可以借助福昕软件查看

相关推荐
weixin_4410036416 小时前
2027徐涛《核心考案+优题库》电子版pdf
pdf
IT大师兄吖16 小时前
paddleOcr 懒人整合包 添加pdf和图片转markdown 添加GPU支持
pdf
IT大师兄吖16 小时前
PaddleOCR-VL-1.5 懒人整合包 支持PDF转MD 比PP-StructureV3更精准
pdf
AmyLin_200117 小时前
【pdf2md-3:实现揭秘】福昕PDF SDK Python 开发实战:从逐字符提取到 LR 版面分析
开发语言·python·pdf·sdk·markdown·pdf2md
开开心心就好18 小时前
伪装文件历史记录!修改时间的黑科技软件
java·前端·科技·r语言·edge·pdf·语音识别
其实秋天的枫19 小时前
【26最新】考研计算机408统考历年真题及答案解析PDF电子版(2009-2026年)
经验分享·pdf
优化控制仿真模型20 小时前
【26最新】考研计算机408统考历年真题及答案解析PDF电子版(2009-2026年)
经验分享·pdf
IT大师兄吖21 小时前
小红书FireRed-OCR 2B 图片和PDF转md 懒人整合包
pdf·ocr
SEO-狼术21 小时前
Secure PDF Delphi Edition
服务器·windows·pdf
long_songs21 小时前
纯前端 PNG/JPG 转 PDF 工具(无需服务器,源码分享)
服务器·前端·pdf