表紙、ローマ数字、本文の最初のページ: PDF のページ番号を混同しないでください。
ページ番号ラベル ルールでは、start ではなく firstpagenum を使用します。表紙にプレフィックスしかない場合、ルール辞書のリードバックではスタイルが省略される可能性があります。より意味のある受け入れは、物理ページごとに get_label の結果を確認することです。表示タグだけがページのアイデンティティではありません。
PDF のページ番号ラベルは、肉眼で見えるページ番号と必ずしも一致しません。表紙、ローマ数字序文、1ページ目からリナンバーされた本文が同一ファイル内に混在している場合、表示されるページ番号とプログラムで読み取った結果が一致しにくくなります。この記事は、ページ番号ラベルを自分で生成または確認する必要がある人を対象としています。
これを読むと、開始番号には start ではなく firstpagenum を使用する必要があること、表紙にプレフィックスしかない場合にページごとに get_label が呼び出される理由、およびページの一意の ID として表示ラベルを使用できない理由がわかります。
PDF ページ番号ラベルを設定するにはどうすればよいですか?一文の結論
ページ番号ラベルのルールには firstpagenum を使用してください。受付中に物理ページの get_label の結果を 1 つずつ確認し、ページの一意の ID の代わりに表示ラベルを参照として使用します。
| あなたの状況 | 推奨される実践方法 | 理由 |
|---|---|---|
| 表紙には接頭語のみが付いています | get_label を使用してラベルの各ページを読み取ります | リードバック ルール ディクショナリでは style が省略される場合があり、直接インデックス付けを行うとエラーが発生しやすくなります。 |
| テキストの開始番号を設定する必要があります | firstpagenumを使用する | この記事のルールは firstpagenum に基づいており、start は使用されません |
| ページに重複したタグが表示されます | 物理ページインデックスも保存します | 表示タグが一意のページ ID ではありません |
| 文書内でローマ数字とアラビア数字が混在している | ラベルをページごとに確認する | ローマ数字を物理的なページ番号と間違えないでください |
この記事で解決する問題
ルールフィールドには firstpagenum を使用します
ページ ラベル ルールは、start ではなく firstpagenum を使用します。設定するときは、フィールド名を参照して、間違って予期しない数値を取得することを避けてください。
表紙に接頭語のみが付いている場合の読み方
表紙にプレフィックスのみがある場合、ルール辞書のリードバックでは style が省略される場合があります。したがって、style に直接インデックスを作成する代わりに、各物理ページ get_label の結果を確認します。
表示タグが一意ではありません
表示ラベルは繰り返すことができます。たとえば、「1」が異なる章に表示されます。特定のページを見つける必要がある場合は、物理ページのインデックスも保存する必要があります。
自己完結型の構成例
依存関係についてはインポート リストを参照してください。コードはメモリ内の入力を構築し、実行レコードは個別に提供され、すべての実ファイルの保証を表すものではありません。
import pymupdf
with pymupdf.open() as source:
for _ in range(4):
source.new_page()
source.set_page_labels([
{"startpage": 0, "prefix": "Cover", "style": "", "firstpagenum": 1},
{"startpage": 1, "prefix": "", "style": "r", "firstpagenum": 1},
{"startpage": 3, "prefix": "", "style": "D", "firstpagenum": 1},
])
raw = source.tobytes()
with pymupdf.open(stream=raw, filetype="pdf") as doc:
assert [page.get_label() for page in doc] == ["Cover", "i", "ii", "1"]
assert len(doc.get_page_labels()) == 3
assert doc.get_page_labels()[0].get("style", "") == ""
assert doc.page_count == 4
動作環境と注意事項
この記事では、合成サンプルを使用して処理方法を説明します。コードは隔離された環境でサンプルを使用してチェックされており、すべての実際のファイルや製品のパフォーマンスを保証するものではありません。重要な書類を処理する前に、原本を保管し、本文の境界と許容事項に従って確認してください。
ご使用の環境でアサーションが失敗する場合は、まず PyMuPDF のバージョンをチェックし、ページ番号ラベルのフィールド名が正しく使用されていることを確認してください (この記事のルールでは、start ではなく firstpagenum を使用します)。
受け入れ基準と手動レビューのしきい値
次の受け入れ項目は、構造化 PDF のコードレベルの検査にのみ適用されます。
- 表紙、ローマ数字の序文、本文を含むテスト PDF を作成します。
- 物理ページで
get_labelを 1 つずつ呼び出し、各ページに返されたラベルを記録します。 - 表紙の接頭語、ローマ数字の段落、本文の開始ページ番号が期待どおりであるかどうかを確認します。
- ラベルを複製するときに、物理ページインデックスも同時に保存されるかどうかを確認します。
エンドツーエンドの効果もレンダリング検証と組み合わせる必要があります。一部のリーダーは不正なタグ ルールを無視するため、表示結果がプログラムの解析結果と不一致になります。この場合、リーダーのパフォーマンスではなく、PDF の仕様が優先される必要があります。
📊 コアの比較
次の表は、いくつかの異常な状況で実行すべきことと、推測すべきではないことを示しています。
| 観察する | 何をするか | 推測すべきではない |
|---|---|---|
| カバープレフィックス | get_label を読む | 欠落している可能性がある style にインデックスを付けないでください |
| 重複したタグ | 物理ページインデックスも保存します | 表示ラベルは主キーとして扱われません |
| 帯分数 | ラベルをページごとに確認する | ローマ数字を物理的なページ番号と間違えないでください |
ドキュメント翻訳にチェックリストを適用する
ページの順序、ソースの場所、テキストの完全性がチェックされてから、同じ感度を下げたサンプルが翻訳プロセスに送信されます。翻訳後も、タイトル、本文、イラストが正しく対応しているか確認する必要があります。文章が滑らかかどうかだけをチェックすることはできません。
OmniDoc (製品ポータル)はマルチフォーマット文書翻訳ポータルを提供しており、公式 Web サイトでは OCR、用語集、対訳比較機能を導入しています。ファイルから直接処理を開始したい場合は、実際のサンプルを使用してこのパスを評価できます。アップロード許可のある感度を下げたファイルを使用し、この記事のチェック項目を使用して結果を確認してください。この記事では、OmniDoc が記事内で言及されているオープン ソース ライブラリや内部アルゴリズムを使用しているとは主張していません。また、この例は製品のパフォーマンス テストに代わるものではありません。
参考文献
🎯 どの方法があなたに適していますか?
表紙にプレフィックスのみがある場合
get_label を使用して結果をページごとに確認します。style に直接インデックスを付けないでください。
テキスト番号を 1 ページ目から開始するように設定したい場合
start ではなく、firstpagenum を使用してください。
ページに重複したタグが表示されている場合
また、物理ページ インデックスを保存し、表示ラベルを一意の識別子として使用しないでください。
ファイルを翻訳プロセスに送信する場合
最初にページの順序とテキストの整合性をチェックし、次に翻訳後にタイトル、テキスト、凡例をチェックします。
❓ よくある質問 (FAQ)
1. 開始ページ番号を設定するには、start または firstpagenum を使用する必要がありますか?
この記事のルールに従って、start の代わりに firstpagenum を使用してください。
2. ルール ディクショナリ内のスタイルを直接読み取らないのはなぜですか?
表紙にプレフィックスしかない場合、リードバック ルール辞書で style が省略される可能性があり、直接インデックスを作成するとエラーが発生する可能性があります。
3. 表示タグをページの一意の識別子として使用できますか?
できません。表示ラベルは一意のページ ID ではありません。ラベルが繰り返される場合、物理ページインデックスも同時に保存する必要があります。
4. コード チェックに合格した場合、リーダーの表示に一貫性があることを意味しますか?
できません。コードレベルでの受け入れは、エンドツーエンドの効果と同等ではありません。一部のリーダーは不正なタグ ルールを無視するため、レンダリング検証と組み合わせて PDF 仕様に従う必要があります。
📝 概要
ページ番号タグの鍵は、適切なフィールドを使用し、ページごとに検証し、物理ページ インデックスを保存することです。重要な書類を処理する前に、感度を下げたサンプルを使用して上記のチェックを完了してください。


