コンテンツにスキップ

API 一覧

詳細な docstring はパッケージ内にあります(help(pylopdf.Document))。この ページは地図です。ページ番号は get_toc / set_toc(pymupdf 互換の 1 始まり)を 除きすべて 0 始まり。座標はすべて左上原点の表示空間です。 API安定性ポリシーで公開範囲と非推奨化の手順を定義しています。

Document

pylopdf.Document(filename=None, stream=None, password=None, max_decompressed_size=None, *, limits=None)pylopdf.open() は別名コンストラクタ。with 文に対応。 password inputはUTF-8 127 byteが上限です。

メンバ 用途
doc[i] / load_page(pno) / イテレーション Page ビュー(負数可。構造変更後は取得し直す)
page_count / len(doc) ページ数
limits / complexity 読み込み時の不変な資源ポリシー / streamを展開しない軽量な構造指標
needs_pass / is_encrypted / authenticate(pw) UTF-8 127 byte上限付きの暗号化状態と復号(pymupdf互換の意味論)
is_repaired 最終classic startxrefの誤りを読み込み時に修復したか。保存するとxref dataを正規化
metadata / set_metadata(dict) 標準Info 8項目(UTF-16BE対応)。aggregate text 1 MiB、書き込みは原子的
get_page_text(pno, option) "text" / "words" / "blocks" / "dict"
get_text(pages=None) 最大4,096 pageを1回のbatchで抽出するplain text。interpreter font cacheを共有(Noneで全page)
to_markdown(pages=None, table_strategy="lines", max_size=64 MiB) 上限付き線形entry builderによるpage単位2-pass Markdown変換。最大4,096 page・累積UTF-8出力上限(Noneで解除)、見出し・CJK・強調・list・column・縦書き順・table制御
render_page(..., max_size=64 MiB) / render_pages(..., workers=, max_size=512 MiB) / render_page_svg(..., max_size=64 MiB) 上限付きPNG、4,096 page・累積encoded output上限付き順序保証並列PNG群、上限付きUTF-8 SVG(Noneで解除)
compress_images(dpi=150, quality=75) 安全なDCT/Flate raster XObjectを配置DPIに応じて非可逆縮小・JPEG再圧縮し、型付きのbyte/count統計を返す
set_fallback_font(font, kind=, index=, max_font_size=64 MiB) 非埋め込みCJKの上限付き代替font。信頼できるfont inputはNoneで解除
select / delete_page(s) / insert_pdf / new_page / copy_page page操作。select/delete/insert batchは4,096 entry上限
get_toc() / set_toc(toc) cycle対応・上限付きのしおり(1始まり。4,096 entry/node、8,192 edge、深さ64、text 1 MiB)
get_page_labels() / set_page_labels(labels) ページラベル。固定上限は4,096 entry/node、深さ32、label text 1 MiB
get_form_fields() / set_form_field(name, value, fontfile=, fontbuffer=, fontindex=, max_font_size=64 MiB) field tree・caller名/値1 MiB・button state・font inputに上限を持つ、ネイティブ外観付きAcroFormの一覧と記入
embfile_add(..., max_size=64 MiB) / embfile_names / embfile_get(name, max_size=64 MiB) / embfile_del 入力と展開出力に対称な既定上限を持ち、caller text 1 MiB、追加metadata・inline FileSpec clone形状も制限する添付ファイル操作。max_size=Noneで明示的に解除
get_pdfa_claim(max_size=1 MiB) 上限付きXMP PDF/A宣言読み取り。max_size=Noneで明示的に上限解除。検証ではない
save(...) / tobytes(..., max_size=512 MiB) 同一directoryへの完全なstream書き込み後の原子的file置換/上限付きPDF byte列。garbage= deflate= object_streams=、127 byte上限付きuser_pw=owner_pw=max_size=Noneで解除
close() with 文でも

compress_images()は全ページを解釈して、各間接raster objectが最も大きく配置される 寸法を求めてから、lopdfのcloneへ原子的に編集します。dpi=Noneでは縮小せず、 quality再圧縮だけを行います。対象はmaskや独自decode arrayを持たない、直接かつ 単一filterの8-bit DeviceGray/DeviceRGB DCT/Flate streamに限定します。DCTの decode parameterは対象外で、Flateはpredictorなし、または辞書と整合するPNG predictorに対応します。解釈された非対応の間接画像と結果が小さくならないencodingは skipし、inline画像は集計対象外です。1回の呼び出しで解釈する間接raster配置が 65,536件を超える場合は拒否します。同じ設定の再実行は冪等です。

Page

メンバ 用途
number / parent / get_label() 素性と表示ラベル
get_text(option) / search_for(needle, max_hits=4096) 抽出と上限付き検索(大文字小文字を区別しない)。検索語はUTF-8 4,096 byte、信頼できる結果集合はNoneで解除
get_text_ocr(dpi=, engine=, tile_size=, overlap=, min_confidence=, rotation=, clip=) 編集せずローカルPP-OCRv6で位置付き単語を認識。rotationは入力を時計回りに補正し、clipは表示座標
apply_ocr(..., rotation=, clip=, skip_existing=True) 向きを保持した不可視の検索可能層を挿入。選択領域の既存テキストは既定でスキップ
find_tables(strategy="lines", clip=None) 完全なベクタ罫線、保守的に補完した疎な罫線、結合セル。"text"で罫線なし検出、clipで表示座標の領域を指定
to_markdown(table_strategy="lines", max_size=64 MiB) documentと同じtable・UTF-8出力制御を持つ1 page Markdown
get_images() 描画された画像(bbox付き、JPEG passthrough / PNG)。4,096配置、累積64,000,000画素、payload 64 MiBを超える部分結果は拒否
get_drawings() ページで解釈されたベクターの fill/stroke パス。表示座標の line/cubic 形状と正規化された描画属性。8,192パス、131,072コマンド、またはページ集約131,072 dash値を超える場合は部分結果を返さず拒否
get_pixmap(scale=, dpi=, background=, clip=) / render(max_size=64 MiB) / render_svg(max_size=64 MiB) 上限付きPNG / UTF-8 SVG rendering。clipは表示座標
rotation / set_rotation(deg) 表示回転
mediabox / cropbox / rect / set_mediabox / set_cropbox ページボックス
insert_image(rect, filename= / stream= / pixmap=, rotate=, keep_proportion=, overlay=, max_size=64 MiB, max_pixels=64,000,000) 上限付きJPEG/PNG、または既に上限管理されたRGBA Pixmapを挿入。信頼できるencoded input/PNG画素はNoneで解除。rotateは90度単位の時計回り回転
show_pdf_page(rect, src, pno=, keep_proportion=, overlay=) PDFページをベクタのまま重ねる。srcは同じ文書でもよい
insert_text(point, text, fontsize=, fontname=, fontfile=, fontbuffer=, fontindex=, color=, overlay=, max_font_size=64 MiB, max_text_size=1 MiB) UTF-8と4,096行を上限として標準14またはshape済みsubset textを印字。pylopdf[cjk]はJP fontを自動選択。信頼できる各inputはNoneで解除
insert_textbox(rect, text, fontsize=, fontname=, fontfile=, fontbuffer=, fontindex=, color=, align=, expandtabs=, lineheight=, overlay=, max_font_size=64 MiB, max_text_size=1 MiB) textとtab展開を事前検査し、Core 14、OpenType、または自動JP fontの実幅でUAX #14折り返し。物理行・折り返し後layoutは4,096行が上限で、収まらなければ描画しない
insert_ocr_text_layer(words, rotation=) 向きを保持した不可視OCRテキスト層。1 callあたり4,096語・UTF-8 text 1 MiBが上限
replace_text(search, replacement, default_char=, max_size=64 MiB) 入出力上限とcopy-on-writeを備えた原子的な単純エンコーディング置換
annots() / get_links() / add_highlight_annot(...) / add_link_annot(rect, uri) 上限付き注釈・link読み取りと作成。描画時は、有効なQuadPointsを持つ上限内のRGB Highlight、Underline、StrikeOut、Squigglyについて、元PDFを変更せず不足appearanceを保守的に補完

get_drawings()type="f" / "s" / "fs"、自己完結したline/cubicの itemsrect、RGB/opacity、fill rule、width、cap、join、dashesを持つ DrawingInfo辞書を返します。pattern paintでは形状を保持し、色とopacityはNoneです。 clip path、clip適用後の可視判定、group/soft-mask構造、optional-content layer名、 text、image、annotationは返しませんが、optional-contentの表示状態は適用されます。 8,192 pathsまたは131,072 commandsを超える結果は切り詰めず拒否します。

埋め込みフォントを使うinsert_textでは、すべての字形を含む単一フォントが必要です。 sourceを省略しpylopdf[cjk]が入っていれば、日本語・漢字にはJP subsetのNoto Sans、 Times系fontnameにはNoto Serifを自動選択します。これはrun全体で1 fontを選ぶ動作で、 glyphごとのfallbackではありません。Hangul、中国語地域に合う字形、他script、別書体は OpenType fontを明示します。各行の字形処理は行いますが、双方向paragraph layoutと 折り返しは行いません。RTLの字形処理結果は正しく描画されますが、現時点の抽出順は 論理順ではなく視覚順です。

insert_textboxはリッチテキストエンジンではなく、明示改行、tab展開、CJKのUnicode 改行位置、長すぎる単語のgrapheme単位の緊急折り返しを扱います。整列には TEXT_ALIGN_LEFTTEXT_ALIGN_CENTERTEXT_ALIGN_RIGHTTEXT_ALIGN_JUSTIFYを使います。戻り値が負なら高さ不足で、ページ内容やフォント resourceは追加されません。

set_form_fieldはテキスト、コンボ/リスト選択、チェックボックス、ラジオボタンの 外観を生成します。WinAnsiはHelveticaで自動縮小され、UnicodeはOpenTypeの fontfileまたはfontbufferを指定するとサブセット埋め込みされます。 pylopdf[cjk]の導入時は、WinAnsi外の値にJP subsetのsans fontを試します。Hangulや 中国語地域に合う字形には対応fontを明示します。既存の 空でないボタン外観は保持し、不足する状態だけをベクタで生成します。他のWinAnsi フィールドに不足する外観も同時に補完し、記入可能な全widgetが自己完結したときだけ NeedAppearancesを解除します。combテキスト欄は継承されたMaxLenと整列を尊重し、 Unicode graphemeを各位置の中央に配置して、長すぎる値を文書無変更で拒否します。 リッチテキスト、pushbutton action、署名は生成しません。

Table.confidenceは0–1の決定的な順位付けheuristicで、校正された確率ではありません。 Table.diagnosticsTableDiagnostics tupleです。罫線なし表ではem正規化したalignment 誤差、最小gutter、行間ばらつきを保持します。完全なベクタグリッドは1.0、 疎な罫線を補完したhybrid gridは0.95で、いずれもこれらtext専用metricはNoneです。 TableFinder.strategyTableFinder.clipには 使用した設定が残ります。

モジュールレベル

名前 用途
peek_metadata(filename=None, stream=None, password=None, *, max_file_size=None) 入力サイズを任意に制限しpasswordを127 byteに制限する高速メタデータ読み取り。repairedで限定的なclassic startxref修復を確認
Permissions 暗号化の許可フラグ(IntFlag)
Rect 矩形の NamedTuple(width / height 付き)
TextPage / TextBlock / TextLine / TextSpan get_text("dict") の TypedDict 階層
ImageInfo / ImageCompressionResult / AnnotationInfo / LinkInfo / FormFieldInfo / DrawingInfo page・document操作・form・vector drawing の辞書形式結果を表す TypedDict
DrawingItem line/cubic 描画コマンドを表す型 alias
PageLabelInfo / PageLabelSpec 正規化済みページラベル出力/setter入力の契約
DocumentMetadata / MetadataUpdate / MetadataProbe metadata出力/部分更新/高速probeの契約
DocumentLimits / DocumentComplexity PDF snapshot用max_interpretation_sizeと位置付きlayout用max_text_glyphsを含む、信頼できない入力の不変な上限/軽量な構造TypedDict
OcrEngine / OcrWord 再利用可能な純Rust PP-OCRエンジン/位置付き結果の契約
OcrRotation / WordEntry / BlockEntry / FormFieldType runtimeでimportできるOCR回転・tuple・literal型alias
TableFinder / Table / TableDiagnostics 所有権を持つ表の座標、セル文字列(結合継続位置はNone)、strategy、confidence根拠。Table.to_markdown(max_size=64 MiB)はescape後のUTF-8出力を事前検査
PdfError / LimitError / PasswordError / OcrError / DocumentClosedError / EncryptedDocumentError / StalePageError 例外階層。上限違反は安定した.codeを公開(ValueError互換の基底)
Pixmap 不変のRGBA8画素: samples / width / height / stride / n / tobytes(max_size=64 MiB) / streamingし、失敗時も既存fileを保持するPNG専用save(path)。cp314tではread-only・zero-copyのmemoryview()にも対応
PylopdfWarning 復旧可能な解釈警告(xref修復・フォント未解決・画像デコード失敗)

TypedDictは静的型付けだけに作用し、値は従来どおり通常のpymupdf形式の辞書です。 LinkInfoではkindfromが必須で、遷移先ごとのキーは任意です。 PageLabelSpecではstartpageが必須で、styleprefixfirstpagenumの runtime既定値は変わりません。