用SumutraPDF的Document properties看到LaTeX生成的文档有2个字体
CMR10(Type1;embedded)
CMTI10(Type1;embedded) CMTI10应该是斜体. 能否根据字体来提取文本? 只提取CMTI10就能提取斜体文字了.
- from PyPDF2 import PdfReader
- reader = PdfReader('example.pdf')
- page = reader.pages[0]
- def visitor_body(text, cm, tm, fontDict, fontSize):
- if text:
- print(fontDict['/BaseFont'])
- page.extract_text(visitor_text=visitor_body)
复制代码
输出是/DCZPBI+CMR10
/GUKUYZ+CMTI10
'aaa bbb ccc' 这里的DCZPBI、GUKUYZ都是啥意思?
加上“字符串包含CMTI”的判断,代码变成
- from PyPDF2 import PdfReader
- reader = PdfReader('example.pdf')
- page = reader.pages[0]
- def visitor_body(text, cm, tm, fontDict, fontSize):
- if text and 'CMTI' in fontDict['/BaseFont']:
- print(text)
- page.extract_text(visitor_text=visitor_body)
复制代码
输出是bbb
成功了 |