跳转到主要内容

MuPDF库的Python绑定。

项目描述

摘要

  • 为MuPDF PDF库提供的Python绑定。

  • 一个名为mupdf的Python模块。

  • 从MuPDF C++ API生成,该API本身是从MuPDF C API生成的。

  • 提供Python函数,用于封装大多数fz_pdf_函数。

  • 提供Python类,用于封装大多数fz_pdf_结构。

    • 类方法提供了对大多数底层C API函数的访问(除了不接收结构体参数的函数,如fz_strlcpy())。

  • MuPDF的setjmp/longjmp异常被转换为Python异常。

  • 函数和方法不接收fz_context参数。(内部使用自动生成的线程上下文。)

  • 包装类自动处理底层结构体的引用计数(通过内部调用fz_keep_*()fz_drop_*())。

  • 通过SWIG Director类支持MuPDF函数指针,允许MuPDF调用Python回调。

  • 提供了一些超出基本C API的扩展

    • 一些生成的类具有额外的迭代支持。

    • 一些自定义类方法和构造函数。

    • 简单的“POD”结构体有 __str__() 方法,例如 mupdf.Rect 表示为: (x0=90.51 y0=160.65 x1=501.39 y1=215.6)

示例用法

使用 mupdf 模块的最小 Python 代码

import mupdf
document = mupdf.Document('foo.pdf')

一个简单的 Python 测试脚本示例(由 scripts/mupdfwrap.py -t 运行)是

  • scripts/mupdfwrap_test.py

Python API 的更多详细用法可以在以下位置找到

  • scripts/mutool.py

  • scripts/mutool_draw.py

以下是一些示例代码,展示了文档 Stext 块、行和字符的所有可用信息

#!/usr/bin/env python3

import mupdf

def show_stext(document):
    '''
    Shows all available information about Stext blocks, lines and characters.
    '''
    for p in range(document.count_pages()):
        page = document.load_page(p)
        stextpage = mupdf.StextPage(page, mupdf.StextOptions())
        for block in stextpage:
            block_ = block.m_internal
            log(f'block: type={block_.type} bbox={block_.bbox}')
            for line in block:
                line_ = line.m_internal
                log(f'    line: wmode={line_.wmode}'
                        + f' dir={line_.dir}'
                        + f' bbox={line_.bbox}'
                        )
                for char in line:
                    char_ = char.m_internal
                    log(f'        char: {chr(char_.c)!r} c={char_.c:4} color={char_.color}'
                            + f' origin={char_.origin}'
                            + f' quad={char_.quad}'
                            + f' size={char_.size:6.2f}'
                            + f' font=('
                                +  f'is_mono={char_.font.flags.is_mono}'
                                + f' is_bold={char_.font.flags.is_bold}'
                                + f' is_italic={char_.font.flags.is_italic}'
                                + f' ft_substitute={char_.font.flags.ft_substitute}'
                                + f' ft_stretch={char_.font.flags.ft_stretch}'
                                + f' fake_bold={char_.font.flags.fake_bold}'
                                + f' fake_italic={char_.font.flags.fake_italic}'
                                + f' has_opentype={char_.font.flags.has_opentype}'
                                + f' invalid_bbox={char_.font.flags.invalid_bbox}'
                                + f' name={char_.font.name}'
                                + f')'
                            )

document = mupdf.Document('foo.pdf')
show_stext(document)

更多信息

https://mupdf.com/r/C-and-Python-APIs

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源代码分发

mupdf-1.21.1.20230112.1504.tar.gz (83.1 MB 查看散列)

上传时间 源代码

构建分发

mupdf-1.21.1.20230112.1504-cp311-none-win_amd64.whl (31.1 MB 查看散列)

上传时间 CPython 3.11 Windows x86-64

mupdf-1.21.1.20230112.1504-cp311-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.4 MB 查看散列)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

mupdf-1.21.1.20230112.1504-cp310-none-win_amd64.whl (31.1 MB 查看散列)

上传时间 CPython 3.10 Windows x86-64

mupdf-1.21.1.20230112.1504-cp310-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.4 MB 查看散列)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86-64

mupdf-1.21.1.20230112.1504-cp39-none-win_amd64.whl (31.1 MB 查看散列)

上传时间 CPython 3.9 Windows x86-64

mupdf-1.21.1.20230112.1504-cp39-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.4 MB 查看散列)

上传时间 CPython 3.9 manylinux: glibc 2.17+ x86-64

mupdf-1.21.1.20230112.1504-cp38-none-win_amd64.whl (31.1 MB 查看哈希值)

上传时间 CPython 3.8 Windows x86-64

mupdf-1.21.1.20230112.1504-cp38-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.4 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.17+ x86-64

mupdf-1.21.1.20230112.1504-cp37-none-win_amd64.whl (31.1 MB 查看哈希值)

上传时间 CPython 3.7 Windows x86-64

mupdf-1.21.1.20230112.1504-cp37-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.4 MB 查看哈希值)

上传时间 CPython 3.7 manylinux: glibc 2.17+ x86-64

由以下支持