提取pdf文件内的素材及字体

Qbit 2021-01-08 AM 714℃

说明

当修改一些带有背景图的pdf时,经常需要把背景图分离出来,然后处理内容。

方法一:使用 mupdf

1. 软件下载

下载: mupdf.com/downloads/

2. 使用命令

c:\> mutool.exe extract filename.pdf #(on Windows)
  $> mutool extract filename.pdf #(on Linux, Unix, Mac OS X)

注意

1. 提取的字体文件可能无法使用

网上说使用字体转换器,从 ttfotf 一次,然后重新转回 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
  >>

可以看出,字体是由 OVKIWESourceHanSerifCN-Regular 组成
OVKIWE 搜不到,可能是因为pdf是加密型,字体定制化的。

下面参考里,还有如何提取字体的方法,可以自行实验

参考地址:https://code-examples.net/zh-CN/q/35392a

标签: pdf

非特殊说明,本博所有文章均为博主原创。