说明
当修改一些带有背景图的pdf时,经常需要把背景图分离出来,然后处理内容。
方法一:使用 mupdf
1. 软件下载
2. 使用命令
c:\> mutool.exe extract filename.pdf #(on Windows)
$> mutool extract filename.pdf #(on Linux, Unix, Mac OS X)
注意
1. 提取的字体文件可能无法使用
网上说使用字体转换器,从 ttf 转 otf 一次,然后重新转回 ttf,虽然能转换成功及安装成功,但使用时貌似依然乱码,可能提取的字体文件只是pdf内使用过的部分字符吧。(请自行测试找寻可用方案)
方法二:python脚本获取字体
该方式可以获取到字体名称(已验证),具体能否成功提取解码字体文件(未验证成功)
要求环境python2.5或3以上
1. 下载 pdf-parser 脚本
下载:https://blog.didierstevens.com/programs/pdf-tools/
2. 执行脚本,获取字体信息
# 搜索 fontfile 关键字
pdf-parser.py -s fontfile demo.pdf
# /FontFile2 16 0 R 就是该字体对象的ID 16
# /FontName /OVKIWE+SourceHanSerifCN-Regular 字体名称
obj 17 0
Type: /FontDescriptor
Referencing: 16 0 R
<<
/FontBBox [-997 -1048 2929 1809]
/CapHeight 729
/Type /FontDescriptor
/FontFile2 16 0 R
/StemV 80
/Descent -120
/Flags 32
/FontName /OVKIWE+SourceHanSerifCN-Regular
/Ascent 879
/ItalicAngle 0
>>
可以看出,字体是由 OVKIWE 和 SourceHanSerifCN-Regular 组成OVKIWE 搜不到,可能是因为pdf是加密型,字体定制化的。
下面参考里,还有如何提取字体的方法,可以自行实验

