Couverture, chiffres romains et première page de texte : ne confondez pas les numéros de page PDF

Les règles d'étiquetage des numéros de page utilisent firstpagenum et non start. Lorsque la couverture n'a qu'un préfixe, la relecture du dictionnaire de règles peut omettre le style ; une acceptation plus significative consiste à vérifier les résultats de get_label pour chaque page physique. La balise d'affichage n'est pas la seule identité de la page.

Les étiquettes de numéro de page du PDF ne correspondent pas nécessairement aux numéros de page vus à l’œil nu. Lorsque la couverture, la préface en chiffres romains et le texte renuméroté à partir de la page 1 sont mélangés dans le même fichier, il est facile de ne pas correspondre au numéro de page affiché et au résultat lu par le programme. Cet article s'adresse aux personnes qui doivent générer ou vérifier elles-mêmes les étiquettes de numéro de page.

Après avoir lu ceci, vous saurez que le numéro de départ doit utiliser firstpagenum au lieu de start, pourquoi get_label est appelé page par page lorsque la couverture n'a qu'un préfixe, et pourquoi l'étiquette d'affichage ne peut pas être utilisée comme identité unique de la page.

Comment définir les étiquettes de numéro de page PDF ? Conclusion en une phrase

Veuillez utiliser firstpagenum pour les règles d'étiquetage des numéros de page. Vérifiez les résultats de get_label un par un pour les pages physiques lors de l'acceptation et utilisez l'étiquette d'affichage comme référence au lieu de l'identité unique de la page.

votre situationPratiques recommandéesraison
La couverture n'a que le préfixeUtilisez get_label pour lire chaque page d'étiquettesLe dictionnaire de règles de relecture peut omettre style et l'indexation directe est sujette à des erreurs.
Besoin de définir le numéro de départ du texteUtiliser firstpagenumLes règles de cet article sont basées sur firstpagenum, start n'est pas utilisé
La page affiche des balises en doubleEnregistrez également l'index physique de la pageAfficher la balise n'est pas une identité de page unique
Chiffres romains mélangés à des chiffres arabes dans le documentVérifier les étiquettes page par pageNe confondez pas les chiffres romains avec les numéros de page physiques

Le problème à résoudre dans cet article

Utiliser firstpagenum pour les champs de règle

Les règles d'étiquette de page utilisent firstpagenum, et non start. Lors du réglage, référez-vous au nom du champ pour éviter d'obtenir un numéro inattendu après avoir commis une erreur.

Méthode de lecture lorsque la couverture n'a qu'un préfixe

Lorsque la couverture ne comporte que le préfixe, la relecture du dictionnaire de règles peut omettre style. Ainsi, au lieu d’indexer directement style, vérifiez les résultats pour chaque page physique get_label.

Afficher la balise n'est pas unique

Les étiquettes d'affichage peuvent être répétées, par exemple, "1" apparaît dans différents chapitres. Si vous devez localiser une page spécifique, l'index physique de la page doit également être enregistré.

Exemple de composition autonome

Voir la liste d'importation pour les dépendances. Le code construit l'entrée en mémoire et les enregistrements d'exécution sont fournis séparément et ne représentent pas une garantie de tous les fichiers réels.

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

Environnement d'exploitation et précautions

Cet article utilise des échantillons synthétiques pour démontrer la méthode de traitement. Le code a été vérifié avec des exemples dans un environnement isolé et ne constitue pas une garantie de tous les fichiers réels ou des performances du produit. Avant de traiter des documents importants, veuillez conserver les originaux et les examiner en fonction des limites et des éléments d'acceptation du texte.

Si l'assertion échoue dans votre environnement, veuillez d'abord vérifier la version de PyMuPDF et assurez-vous que le nom du champ d'étiquette du numéro de page est utilisé correctement (les règles de cet article utilisent firstpagenum, et non start).

Critères d'acceptation et seuils d'examen manuel

Les éléments d'acceptation suivants s'appliquent uniquement aux inspections au niveau du code des PDF structurés :

  1. Construisez un PDF de test contenant une couverture, une préface en chiffres romains et un corps de texte.
  2. Appelez get_label un par un sur les pages physiques et enregistrez les étiquettes renvoyées pour chaque page.
  3. Vérifiez si le préfixe de couverture, les paragraphes en chiffres romains et la numérotation des pages de début du texte principal sont conformes aux attentes.
  4. Vérifiez si l'index de page physique est enregistré en même temps lors de la duplication des étiquettes.

Les effets de bout en bout doivent également être combinés avec la vérification du rendu. Certains lecteurs ignoreront les règles de balises illégales, ce qui entraînera une incohérence des résultats d'affichage avec les résultats d'analyse du programme. Dans ce cas, ce sont les spécifications PDF qui doivent prévaloir et non les performances du lecteur.

📊 Comparaison de base

Le tableau suivant répertorie ce qui doit être fait dans plusieurs situations anormales et ce qui ne doit pas être déduit :

observerce qu'il faut faireil ne faut pas en déduire
préfixe de couvertureLire get_labelNe pas indexer style qui peut être manquant
Balise en doubleEnregistrez également l'index physique de la pageLes étiquettes d'affichage ne sont pas traitées comme des clés primaires
nombre mixteVérifier les étiquettes page par pageNe confondez pas les chiffres romains avec les numéros de page physiques

Appliquer la liste de contrôle à la traduction de documents

L'ordre des pages, l'emplacement de la source et l'intégrité du texte sont vérifiés avant que le même échantillon désensibilisé ne soit soumis au processus de traduction. Après la traduction, il faut encore vérifier si le titre, le texte et les illustrations correspondent correctement. Vous ne pouvez pas simplement vérifier si le texte est fluide.

OmniDoc (portail produit) fournit un portail de traduction de documents multiformat et le site officiel présente des fonctions d'OCR, de glossaire et de comparaison bilingue. Si vous souhaitez lancer le traitement directement à partir du fichier, vous pouvez évaluer ce chemin avec un échantillon réel. Veuillez utiliser les fichiers désensibilisés que vous êtes autorisé à télécharger et utilisez les éléments de vérification de cet article pour examiner les résultats. Cet article ne prétend pas qu'OmniDoc utilise les bibliothèques open source ou les algorithmes internes mentionnés dans l'article, et les exemples ne peuvent pas remplacer les tests de performances du produit.

Références

🎯 Quelle méthode vous convient ?

Si votre couverture n'a que le préfixe

Vérifiez les résultats page par page avec get_label, n'indexez pas directement style.

Si vous souhaitez que la numérotation du texte commence à partir de la page 1

Utilisez firstpagenum, pas start.

Si votre page affiche des balises en double

Enregistrez également l’index physique de la page et n’utilisez pas l’étiquette d’affichage comme identifiant unique.

Si vous soumettez le fichier au processus de traduction

Vérifiez d'abord l'ordre des pages et l'intégrité du texte, puis vérifiez le titre, le texte et les légendes après la traduction.

❓ Questions fréquemment posées (FAQ)

1. Devez-vous utiliser start ou firstpagenum pour définir le numéro de la page de démarrage ?

Utilisez firstpagenum au lieu de start selon les règles de cet article.

2. Pourquoi ne pas lire directement le style dans le dictionnaire de règles ?

Lorsque la couverture n'a qu'un préfixe, le dictionnaire de règles de relecture peut omettre style et l'indexation directe peut provoquer des erreurs.

3. La balise display peut-elle être utilisée comme identifiant unique de la page ?

ne peut pas. L'étiquette d'affichage n'est pas une identité de page unique. Lorsque l'étiquette est répétée, l'index physique de la page doit être enregistré en même temps.

4. Si la vérification du code réussit, cela signifie-t-il que l'affichage du lecteur est cohérent ?

ne peut pas. L’acceptation au niveau du code n’équivaut pas à un effet de bout en bout. Certains lecteurs ignoreront les règles de balises illégales et devront être combinés avec une vérification du rendu et soumis aux spécifications PDF.

📝Résumé

La clé des balises de numéro de page est d’utiliser les bons champs, de les vérifier page par page et d’enregistrer l’index physique des pages. Avant de traiter des documents importants, veuillez effectuer les contrôles ci-dessus avec des échantillons désensibilisés.

Essayez-le maintenant : téléchargez le document pour lancer la traduction, en conservant la mise en page d'origine.

Mis à jour le 2026-11-14