首页 > 编程语言 >Python3 使用 PyMuPDF 库提取pdf中的字体文件

Python3 使用 PyMuPDF 库提取pdf中的字体文件

时间:2024-01-15 17:33:41浏览次数:41  
标签:tuple fonts PyMuPDF path pdf font Python3

先安装 PyMuPDF 库:

pip install PyMuPDF

 

示例:

import fitz

def extract_fonts(pdf_path):
    with fitz.open(pdf_path) as doc:
        num_pages = doc.page_count
        fonts = []

        for page_number in range(num_pages):
            font_info = doc.get_page_fonts(page_number, True)
            for font_tuple in font_info:
                # 打印所有字体信息
                # print(font_tuple)

                font_xref = font_tuple[0]
                font_ext  = font_tuple[1]
                font_type = font_tuple[2]
                font_name = font_tuple[3]

                if font_type != 'Type3':
                    if fonts.count(font_name) == 0:
                        font_data = doc.extract_font(font_xref)
                        # print(font_data)
                        with open(f"{font_name}.{font_ext}", 'wb') as font_file:
                            font_file.write(font_data[3])
                            fonts.append(font_name)
                        
        print(fonts)

pdf_path = 'sample.pdf'
extract_fonts(pdf_path)

 

 

 

文档:https://pymupdf.readthedocs.io/en/latest/index.html

 

标签:tuple,fonts,PyMuPDF,path,pdf,font,Python3
From: https://www.cnblogs.com/kjcy8/p/17965895

相关文章

  • PDF.js实现按需分片加载pdf文件-包含前后端开发源码和详细开发教程
    PDF.js实现按需分片加载pdf文件-包含前后端开发源码和详细开发教程:https://blog.csdn.net/qq_29864051/article/details/130742657?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170529842016800186594900%2522%252C%2522scm%2522%253A%252220140713.130102334..%252......
  • OneDrive中pdf文件在Edge中打开的相关...
    1.使用Edge访问OneDrive中pdf文件;2.选择"OpeninBrowse"时出现错误,可以有2中解决办法:2.1在Edge扩展中安装pdfviewer请启用;2.2将pdf文件的默认打开方式修改为Edge.3.在选择"OpenAdobeAcrobat"似乎总导向AdobeDocumentCloudforSharePoint/OneDrive,如果该网址不能访问,则......
  • Python3环境安装
    Ubuntu下自带Python。python3-Vpython3--versionPython3.10.12sudoapt-getinstallpython3-pippip -Vpip3--versionpip22.0.2from/usr/lib/python3/dist-packages/pip(python3.10)sudoaptinstallpython3.10-venvpython3-mvenvmyenvsourcemyenv/bin/activ......
  • Java多线程编程实战指南(设计模式篇)PDF
    随着CPU多核时代的到来,多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。而解决多线程编程中频繁出现的普遍问题可以借鉴设计模式所提供的现成解决方案。然而,多线程编程相关的设计模式书籍多采用C++作为描述语言,且书中所举的例子多与应用开发人员的......
  • Java多线程编程实战指南(核心篇)PDF
    随着现代处理器的生产工艺从提升处理器主频频率转向多核化,即在一块芯片上集成多个处理器内核(Core),多核处理器(MulticoreProcessor)离我们越来越近了——如今就连智能手机这样的消费类设备都已配备了4核乃至8核的处理器,更何况商用系统!在此背景下,以往靠单个处理器自身处理能力的提升......
  • Java多线程编程实战指南(核心篇)PDF
    随着现代处理器的生产工艺从提升处理器主频频率转向多核化,即在一块芯片上集成多个处理器内核(Core),多核处理器(MulticoreProcessor)离我们越来越近了——如今就连智能手机这样的消费类设备都已配备了4核乃至8核的处理器,更何况商用系统!在此背景下,以往靠单个处理器自身处理能力的提升所......
  • Head First Java(第二版·中文版)PDF
    《HeadFirstJava》是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导。此书是根据学习理论所设计的,让你可以从学习程序语言的基础开始一直到包括线程、网络与分布式程序等项目。最重要的,你会学会如何像个面向对象开发者一样去思考。而且不只是读死书,你还会玩游戏、......
  • Effective Java中文版(第3版)PDF
    本书一共包含90个条目,每个条目讨论Java程序设计中的一条规则。这些规则反映了最有经验的优秀程序员在实践中常用的一些有益的做法。全书以一种比较松散的方式将这些条目组织成11章,每一章都涉及软件设计的一个主要方面。因此,本书并不一定需要按部就班地从头读到尾,因为每个条目都有一......
  • On Java 中文版 进阶卷 PDF
    内容简介本书内容主要是对《OnJava中文版基础卷》的拓展延伸,重点讲解Java的高级特性、并发、设计模式等相关进阶知识,对一些和开发密切相关的底层操作(如I/O系统、底层并发、数据压缩等)进行深入探讨,同时针对基础卷的重点章节进行了补充说明(如第3章增补了一些关于集合的高级特性)。......
  • latex参考文献不显示在pdf中
    latex参考文献不显示在pdf中下面是texstudio的“消息”一栏的输出:开始:bibtex"main".auxThisisBibTeX,Version0.99d(TeXLive2022/dev/Debian)Thetop-levelauxiliaryfile:main.auxIcouldn'topenstylefilegbt7714-numerical.bst---line3offilemain.au......