PyMuPDF 1.24.4 中文文档(六)(1)

简介: PyMuPDF 1.24.4 中文文档(六)


原文:https://pymupdf.readthedocs.io/en/latest/

API 参考文档

命令行界面

原文:pymupdf.readthedocs.io/en/latest/module.html

  • 版本 1.16.8 中的新功能

PyMuPDF 也可以从命令行使用以执行实用功能。此功能应使一些最基本的脚本编写过时。

不可否认,MuPDF CLI mutool 存在一些功能重叠。另一方面,MuPDF 不再支持 PDF 嵌入文件,因此 PyMuPDF 在这里提供了一些独特的东西。

调用

命令行界面可以通过两种方式调用。

  • 使用已安装的 pymupdf 命令:
pymupdf <command and parameters> 
  • 或者使用 Python 的 -m 开关和 PyMuPDF 的 fitz 模块:
python -m fitz <command and parameters> 

一般备注:

  • 通过"-h"请求帮助,或通过"command -h"请求特定命令的帮助。
  • 在不引入歧义的情况下可以缩写参数。
  • 几个命令支持参数-pages-xrefs。它们用于向下选择。请注意:
  • 此实用程序的 页码 必须是 基于 1 的

  • 有效的xref编号从 1 开始。

  • 指定逗号分隔的 单个 整数或整数 范围 的列表。范围 是由一个连字符“-”分隔的整数对。整数不能超过最大页数或 xref 编号。为了指定最大值,可以使用符号变量“N”。整数或范围可以多次出现,顺序任意且可以重叠。如果范围中的第一个数字大于第二个数字,则将以相反顺序处理相应项目。
  • 如何在您的脚本中使用该模块:
>>> import pymupdf.__main__
>>> cmd = "clean input.pdf output.pdf -pages 1,N".split()  # prepare command line
>>> saved_parms = sys.argv[1:]  # save original command line
>>> sys.argv[1:] = cmd  # store new command line
>>> pymupdf.__main__.()  # execute module
>>> sys.argv[1:] = saved_parms  # restore original command line 
  • 使用以下 2 行代码,并使用Nuitka进行独立模式编译。这将为您提供一个带有所有模块功能的 CLI 可执行文件,可以在所有兼容平台上使用,而无需安装 Python、PyMuPDF 或 MuPDF。
from pymupdf.__main__ import main
main() 

清理和复制

此命令将优化 PDF 并将结果存储在新文件中。您还可以将其用于加密、解密和创建子文档。它与 MuPDF 命令行实用程序 “mutool clean” 大多相似:

pymupdf clean -h
usage: fitz clean [-h] [-password PASSWORD]
                [-encryption {keep,none,rc4-40,rc4-128,aes-128,aes-256}]
                [-owner OWNER] [-user USER] [-garbage {0,1,2,3,4}]
                [-compress] [-ascii] [-linear] [-permission PERMISSION]
                [-sanitize] [-pretty] [-pages PAGES]
                input output
-------------- optimize PDF or create sub-PDF if pages given --------------
positional arguments:
input                 PDF filename
output                output PDF filename
optional arguments:
-h, --help            show this help message and exit
-password PASSWORD    password
-encryption {keep,none,rc4-40,rc4-128,aes-128,aes-256}
                      encryption method
-owner OWNER          owner password
-user USER            user password
-garbage {0,1,2,3,4}  garbage collection level
-compress             compress (deflate) output
-ascii                ASCII encode binary data
-linear               format for fast web display
-permission PERMISSION
                      integer with permission levels
-sanitize             sanitize / clean contents
-pretty               prettify PDF structure
-pages PAGES          output selected pages, format: 1,5-7,50-N 

如果指定了“-pages”,请注意只复制与页面相关的对象,不包括文档级项目,例如嵌入的文件等。

有关参数含义,请参阅Document.save()

提取字体和图像

从所选 PDF 页面中提取字体或图像到指定目录:

pymupdf extract -h
usage: fitz extract [-h] [-images] [-fonts] [-output OUTPUT] [-password PASSWORD]
                    [-pages PAGES]
                    input
--------------------- extract images and fonts to disk --------------------
positional arguments:
input                 PDF filename
optional arguments:
-h, --help            show this help message and exit
-images               extract images
-fonts                extract fonts
-output OUTPUT        output directory, defaults to current
-password PASSWORD    password
-pages PAGES          only consider these pages, format: 1,5-7,50-N 

图像文件名根据命名方案构建:“img-xref.ext”,其中“ext”是与图像关联的扩展名,xref是图像 PDF 对象的xref

字体文件名由字体名称和相关扩展名组成。字体名称中的任何空格都将替换为连字符“-”。

输出目录必须已经存在。

注意

除了输出目录创建之外,此功能在功能上等同于并且已过时 此脚本

连接 PDF 文档

要连接几个 PDF 文件,请指定:

pymupdf join -h
usage: fitz join [-h] -output OUTPUT [input [input ...]]
---------------------------- join PDF documents ---------------------------
positional arguments:
input           input filenames
optional arguments:
-h, --help      show this help message and exit
-output OUTPUT  output filename
specify each input as 'filename[,password[,pages]]' 

注意

  1. 每个输入必须输入为**“文件名,密码,页面”**。密码和页面是可选的。
  2. 如果使用“pages”条目,则需要密码输入。如果 PDF 不需要密码,请指定两个逗号。
  3. **“页面”**格式与本节顶部解释的相同。
  4. 每个输入文件在使用后立即关闭。因此,您可以使用其中一个作为输出文件名,从而覆盖它。

示例:要连接以下文件

  1. file1.pdf: 所有页面,从后往前,无密码
  2. file2.pdf: 最后一页,第一页,密码:“secret”
  3. file3.pdf: 从第 5 页到最后一页,无密码

并将结果存储为output.pdf,输入此命令:

pymupdf join -o output.pdf file1.pdf,N-1 file2.pdf,secret,N,1 file3.pdf,5-N

低级信息

显示 PDF 内部信息。同样,与*“mutool show”*有相似之处:

pymupdf show -h
usage: fitz show [-h] [-password PASSWORD] [-catalog] [-trailer] [-metadata]
                [-xrefs XREFS] [-pages PAGES]
                input
------------------------- display PDF information -------------------------
positional arguments:
input               PDF filename
optional arguments:
-h, --help          show this help message and exit
-password PASSWORD  password
-catalog            show PDF catalog
-trailer            show PDF trailer
-metadata           show PDF metadata
-xrefs XREFS        show selected objects, format: 1,5-7,N
-pages PAGES        show selected pages, format: 1,5-7,50-N 

示例:

pymupdf show x.pdf
PDF is password protected
pymupdf show x.pdf -pass hugo
authentication unsuccessful
pymupdf show x.pdf -pass jorjmckie
authenticated as owner
file 'x.pdf', pages: 1, objects: 19, 58 MB, PDF 1.4, encryption: Standard V5 R6 256-bit AES
Document contains 15 embedded files.
pymupdf show FDA-1572_508_R6_FINAL.pdf -tr -m
'FDA-1572_508_R6_FINAL.pdf', pages: 2, objects: 1645, 1.4 MB, PDF 1.6, encryption: Standard V4 R4 128-bit AES
document contains 740 root form fields and is signed
------------------------------- PDF metadata ------------------------------
       format: PDF 1.6
        title: FORM FDA 1572
       author: PSC Publishing Services
      subject: Statement of Investigator
     keywords: None
      creator: PScript5.dll Version 5.2.2
     producer: Acrobat Distiller 9.0.0 (Windows)
 creationDate: D:20130522104413-04'00'
      modDate: D:20190718154905-07'00'
   encryption: Standard V4 R4 128-bit AES
------------------------------- PDF trailer -------------------------------
<<
/DecodeParms <<
    /Columns 5
    /Predictor 12
>>
/Encrypt 1389 0 R
/Filter /FlateDecode
/ID [ <9252E9E39183F2A0B0C51BE557B8A8FC> <85227BE9B84B724E8F678E1529BA8351> ]
/Index [ 1388 258 ]
/Info 1387 0 R
/Length 253
/Prev 1510559
/Root 1390 0 R
/Size 1646
/Type /XRef
/W [ 1 3 1 ]
>> 

嵌入文件命令

以下命令处理嵌入文件 - 这是 MuPDF 在 v1.14 之后完全删除的功能,因此从所有其命令行工具中删除。

信息

显示嵌入文件名(长格式或短格式):

pymupdf embed-info -h
usage: fitz embed-info [-h] [-name NAME] [-detail] [-password PASSWORD] input
--------------------------- list embedded files ---------------------------
positional arguments:
input               PDF filename
optional arguments:
-h, --help          show this help message and exit
-name NAME          if given, report only this one
-detail             show detail information
-password PASSWORD  password 

示例:

pymupdf embed-info some.pdf
'some.pdf' contains the following 15 embedded files.
20110813_180956_0002.jpg
20110813_181009_0003.jpg
20110813_181012_0004.jpg
20110813_181131_0005.jpg
20110813_181144_0006.jpg
20110813_181306_0007.jpg
20110813_181307_0008.jpg
20110813_181314_0009.jpg
20110813_181315_0010.jpg
20110813_181324_0011.jpg
20110813_181339_0012.jpg
20110813_181913_0013.jpg
insta-20110813_180944_0001.jpg
markiert-20110813_180944_0001.jpg
neue.datei 

每个条目的详细输出如下所示:

name: neue.datei
 filename: text-tester.pdf
ufilename: text-tester.pdf
     desc: nur zum Testen!
     size: 4639
   length: 1566 


PyMuPDF 1.24.4 中文文档(六)(2)https://developer.aliyun.com/article/1559576

相关文章
|
3月前
|
XML 数据安全/隐私保护 数据格式
PyMuPDF 1.24.4 中文文档(七)(3)
PyMuPDF 1.24.4 中文文档(七)
63 0
|
3月前
|
JSON API 数据格式
PyMuPDF 1.24.4 中文文档(四)(5)
PyMuPDF 1.24.4 中文文档(四)
32 0
|
3月前
|
安全 API 数据安全/隐私保护
PyMuPDF 1.24.4 中文文档(一)(5)
PyMuPDF 1.24.4 中文文档(一)
71 3
PyMuPDF 1.24.4 中文文档(一)(5)
|
3月前
|
文字识别 API 数据安全/隐私保护
PyMuPDF 1.24.4 中文文档(一)(4)
PyMuPDF 1.24.4 中文文档(一)
101 3
|
3月前
|
存储 XML 数据安全/隐私保护
PyMuPDF 1.24.4 中文文档(八)(2)
PyMuPDF 1.24.4 中文文档(八)
223 1
|
3月前
|
Python
PyMuPDF 1.24.4 中文文档(三)(5)
PyMuPDF 1.24.4 中文文档(三)
38 0
PyMuPDF 1.24.4 中文文档(三)(5)
|
3月前
|
XML JSON API
PyMuPDF 1.24.4 中文文档(六)(5)
PyMuPDF 1.24.4 中文文档(六)
81 0
PyMuPDF 1.24.4 中文文档(六)(5)
|
3月前
|
存储 API Python
PyMuPDF 1.24.4 中文文档(九)(4)
PyMuPDF 1.24.4 中文文档(九)
42 0
|
3月前
|
存储 JSON API
PyMuPDF 1.24.4 中文文档(四)(2)
PyMuPDF 1.24.4 中文文档(四)
34 0
|
3月前
|
存储 编解码 文字识别
PyMuPDF 1.24.4 中文文档(三)(3)
PyMuPDF 1.24.4 中文文档(三)
46 0