Tools (ツール)#
このクラスは、メモリ管理を中心としたユーティリティメソッドと属性のコレクションです。使用を簡素化し、高速化するために、PyMuPDFがインポートされると、自動的に TOOLS という名前でインスタンス化されます。
メソッド/属性 |
説明 |
---|---|
一意の識別子を生成します。 |
|
格納可能キャッシュを縮小します [1]。 |
|
蓄積されたMuPDFの警告を返します。 |
|
蓄積されたMuPDFの警告を返します。 |
|
STDOUTのMuPDFメッセージを空にします。 |
|
アンチエイリアシングの値を設定します。 |
|
新しい注釈/リンクIDのプレフィックスを設定します。 |
|
小さなbbox高さを使用して検索および抽出します。 |
|
サブセットフォント名タグの抑制を制御します。 |
|
アンチエイリアシングの値を返します。 |
|
PyMuPDF固有のコードを無効にします。 |
|
PyMuPDFの設定設定 |
|
最大格納可能キャッシュサイズ |
|
現在の格納可能キャッシュサイズ |
クラスAPI
- class Tools#
- gen_id()#
1回の呼び出しごとに1ずつ増加する一意の正の整数を返す便利なメソッドです。使用例には、データベース内で一意のキーを作成することが含まれます。タイムスタンプを使用するよりも作成が10倍高速であるべきです。
注釈
MuPDFはv1.14.0でこれをサポートを中止したため、次の違いを持つ類似の関数を再実装しました。
これはMuPDFのグローバルコンテキストの一部ではなく、スレッドセーフではありません(とにかくPyMuPDFではスレッドをサポートしていないため、これは問題ではありません)。
これはintとして実装されています。つまり、最大値は sys.maxsize です。この数値がいつか超過される場合、カウンターは1から再開します。
- 戻り値の型:
int
- 戻り値:
一意の正の整数。
- set_annot_stem(stem=None)#
v1.18.6で新登場
新しい注釈、フィールド、またはリンクのIDのプレフィックスを設定または問い合わせます。
- パラメータ:
stem (str) -- 省略された場合、現在の値が返され、デフォルトは "fitz" です。注釈、フィールド/ウィジェット、およびリンクは技術的にはPDF文書内の同じ種類のオブジェクト(
/Annot
)のサブタイプです。/Annot
オブジェクトは、ページ内で一意の識別子を持つことができます。適用可能なサブタイプごとに、PyMuPDFはそれぞれ "stem-Annn"、"stem-Wnnn"、または "stem-Lnnn" の識別子を生成します。番号 "nnn" は必要な一意性を強制するために使用されます。- 戻り値の型:
str
- 戻り値:
現在の値。
- set_small_glyph_heights(on=None)#
v1.18.5で新登場
テキスト抽出およびテキスト検索メソッドでのbboxの高さを縮小するかどうかを設定または問い合わせます。
- パラメータ:
on (bool) -- 省略された場合または
None
の場合、現在の設定が返されます。他の値の場合、bool() 関数が適用され、グローバル変数を設定します。True
の場合、Page.search_for()
およびPage.get_text()
メソッドは フォントサイズ の高さを持つ文字、スパン、行、またはブロックのbboxを返します。False
の場合(PyMuPDFがインポートされたときの標準設定)、bboxの高さはフォントのプロパティに基づき、通常は 行の高さ と同じです。- 戻り値の型:
bool
- 戻り値:
True または False。
注釈
直接MuPDFコードをラップするテキスト抽出オプション「xml」、「xhtml」、「html」は、これに影響を受けません。
- set_subset_fontnames(on=None)#
バージョン1.18.9で追加されました
テキスト抽出におけるサブセットフォント名のタグを抑制する制御を行います。
- パラメータ:
on (bool) -- 省略された場合
None
、現在の設定が返されます。True
またはFalse
の値を評価して、グローバル変数を設定します。True
の場合、オプション "dict"、"json"、"rawdict"、"rawjson" は例えば"NOHSJV+Calibri-Light"
のように返され、それ以外の場合はデフォルトの"Calibri-Light"
のみが返されます。設定は再度変更されるまで有効です。- 戻り値の型:
bool
- 戻り値:
True または False。
注釈
上記に記載されている以外のテキスト抽出バリアントには影響しません。特に、MuPDFコードに基づくオプション "xml"、"xhtml"、"html" には影響しません。これらはフォント名
"Calibri-Light"
、またはこの例の場合はファミリー名Calibri
のみを抽出します。
- unset_quad_corrections(on=None)#
バージョン1.18.10で追加されました
Page.get_text()
テキスト抽出で無意味なものを検出した際に、有効な文字の四角形を再構築しようとするPyMuPDF固有のコードの有効化/無効化を行います。このコードは、存在しない場合があるフォントの特性(ascenderおよびdescender)に依存しており、これらの特性にアクセスしようとするとセグメンテーション違反が発生します。このメソッドはPyMuPDF内のグローバルパラメータを設定し、このコードの実行を抑制します。- パラメータ:
on (bool) -- 省略された場合、または
None
、現在の設定が返されます。他の値の場合、bool() 関数が適用され、グローバル変数を設定します。True
の場合、PyMuPDFは該当するフォントの特性にアクセスしようとせず、代わりにascender=0.8
およびdescender=-0.2
の値を使用します。- 戻り値の型:
bool
- 戻り値:
True または False。
- store_shrink(percent)#
現在のサイズを基準に、ストレージキャッシュのサイズを指定した割合で減少させます。
- パラメータ:
percent (int) -- 現在のサイズの何パーセントを解放するかを指定します。100以上の場合、ストアは空になります。むしろ、何も変更されません。MuPDFのキャッシング戦略は「最後に使用されたもの」なので、使用頻度の低い要素が最初に削除されます。
- 戻り値の型:
int
- 戻り値:
新しい現在のストアサイズ。状況に応じて、要求された割合よりもサイズが大幅に削減される場合があります。
- show_aa_level()#
バージョン1.16.14で新たに追加
現在のアンチエイリアシング値を返します。これらの値は、グラフィックスとテキスト要素のレンダリング品質を制御します。
- 戻り値の型:
dict
- 戻り値:
以下の初期内容を持つ辞書:
{'graphics': 8, 'text': 8, 'graphics_min_line_width': 0.0}
。
- set_aa_level(level)#
バージョン1.16.14で新たに追加
アンチエイリアシングに使用するビット数を設定します。現在はグラフィックスとテキストのレンダリングに同じ値が使用されます。将来のMuPDFリリースで変更されるかもしれません。
- パラメータ:
level (int) -- 0から8までの範囲の整数。この範囲外の値は静かに有効な値に変更されます。この値は、現在のセッション全体または再度変更されるまで有効です。
- reset_mupdf_warnings()#
バージョン1.16.0で新たに追加
MuPDFの警告メッセージバッファを空にします。
- mupdf_display_errors(value=None)#
バージョン1.16.8で新たに追加
MuPDFのエラーを表示するかどうかを表示または設定します。
- パラメータ:
value (bool) -- boolでない場合、現在の設定が返されます。Trueの場合、MuPDFのエラーは sys.stderr に表示され、それ以外の場合は抑制されます。いずれの場合も、メッセージは警告ストアに引き続き保存されます。PyMuPDFのインポート時にこの値は True です。
- 戻り値:
True または False
- mupdf_warnings(reset=True)#
バージョン1.16.0で新たに追加
すべての保存されたMuPDFメッセージを、改行が挿入された文字列として返します。
- パラメータ:
reset (bool) -- (バージョン1.16.7で新たに追加) ストアを自動的に空にするかどうか。
- fitz_config#
PyMuPDFとMuPDFを設定するために使用される実際の値を含む辞書です。インストールの章も参照してください。これは各キーを概説したもので、それぞれがサポートの側面のステータスを記述しています。
キー
サポートが含まれているのは...
plotter-g
グレーカラースペースのレンダリング
plotter-rgb
RGBカラースペースのレンダリング
plotter-cmyk
CMYKカラースペースのレンダリング
plotter-n
オーバープリントのレンダリング
pdf
PDFドキュメント
xps
XPSドキュメント
svg
SVGドキュメント
cbz
CBZドキュメント
img
IMGドキュメント
html
HTMLドキュメント
epub
EPUBドキュメント
jpx
JPEG2000画像
js
JavaScript
tofu
すべてのTOFUフォント
tofu-cjk
CJKフォントのサブセット(中国、日本、韓国)
tofu-cjk-ext
CJKフォント拡張
tofu-cjk-lang
CJKフォントの言語拡張
tofu-emoji
TOFU絵文字フォント
tofu-historic
TOFU歴史的フォント
tofu-symbol
TOFUシンボルフォント
tofu-sil
TOFU SILフォント
icc
ICCプロファイル
py-memory
Pythonメモリ管理を使用 [2]
base14
Base-14フォント(常にtrueである必要があります)
For an explanation of the term "TOFU" see this Wikipedia article:
In [1]: import pymupdf In [2]: TOOLS.fitz_config Out[2]: {'plotter-g': True, 'plotter-rgb': True, 'plotter-cmyk': True, 'plotter-n': True, 'pdf': True, 'xps': True, 'svg': True, 'cbz': True, 'img': True, 'html': True, 'epub': True, 'jpx': True, 'js': True, 'tofu': False, 'tofu-cjk': True, 'tofu-cjk-ext': False, 'tofu-cjk-lang': False, 'tofu-emoji': False, 'tofu-historic': False, 'tofu-symbol': False, 'tofu-sil': False, 'icc': True, 'py-memory': False, 'base14': True}
- 戻り値の型:
dict
- store_maxsize#
Maximum storables cache size in bytes. PyMuPDF is generated with a value of 268'435'456 (256 MB, the default value), which you should therefore always see here. If this value is zero, then an "unlimited" growth is permitted.
- 戻り値の型:
int
- store_size#
Current storables cache size in bytes. This value may change (and will usually increase) with every use of a PyMuPDF function. It will (automatically) decrease only when
Tools.store_maxsize
is going to be exceeded: in this case, MuPDF will evict low-usage objects until the value is again in range.- 戻り値の型:
int
セッションの例#
>>> import pymupdf
# print the maximum and current cache sizes
>>> pymupdf.TOOLS.store_maxsize
268435456
>>> pymupdf.TOOLS.store_size
0
>>> doc = pymupdf.open("demo1.pdf")
# pixmap creation puts lots of object in cache (text, images, fonts),
# apart from the pixmap itself
>>> pix = doc[0].get_pixmap(alpha=False)
>>> pymupdf.TOOLS.store_size
454519
# release (at least) 50% of the storage
>>> pymupdf.TOOLS.store_shrink(50)
13471
>>> pymupdf.TOOLS.store_size
13471
# get a few unique numbers
>>> pymupdf.TOOLS.gen_id()
1
>>> pymupdf.TOOLS.gen_id()
2
>>> pymupdf.TOOLS.gen_id()
3
# close document and see how much cache is still in use
>>> doc.close()
>>> pymupdf.TOOLS.store_size
0
>>>
脚注