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 situation | Pratiques recommandées | raison |
|---|---|---|
| La couverture n'a que le préfixe | Utilisez get_label pour lire chaque page d'étiquettes | Le 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 texte | Utiliser firstpagenum | Les règles de cet article sont basées sur firstpagenum, start n'est pas utilisé |
| La page affiche des balises en double | Enregistrez également l'index physique de la page | Afficher la balise n'est pas une identité de page unique |
| Chiffres romains mélangés à des chiffres arabes dans le document | Vérifier les étiquettes page par page | Ne 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 :
- Construisez un PDF de test contenant une couverture, une préface en chiffres romains et un corps de texte.
- Appelez
get_labelun par un sur les pages physiques et enregistrez les étiquettes renvoyées pour chaque page. - 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.
- 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 :
| observer | ce qu'il faut faire | il ne faut pas en déduire |
|---|---|---|
| préfixe de couverture | Lire get_label | Ne pas indexer style qui peut être manquant |
| Balise en double | Enregistrez également l'index physique de la page | Les étiquettes d'affichage ne sont pas traitées comme des clés primaires |
| nombre mixte | Vérifier les étiquettes page par page | Ne 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.


