Annotation de PDF
Annotez des PDF dans Potato avec le type d'affichage pdf, avec surlignage de spans, boîtes englobantes sur la page, liens entre pages et OCR pour les fichiers numérisés.
L'affichage pdf rend un PDF dans le navigateur avec PDF.js et place la surface d'annotation sur la page rendue plutôt que sur du texte extrait au préalable. La personne qui annote voit le document réel, avec ses colonnes, ses tableaux, ses figures et ses sauts de page intacts, et l'étiquette sur place. L'affichage prend une seule clé obligatoire, le champ qui contient le chemin ou l'URL du PDF, et tout le reste est une option d'affichage.
instance_display:
fields:
- key: pdf
type: pdf
label: "Document"
display_options:
view_mode: scroll
max_height: 760
zoom: page-widthview_mode prend scroll, paginated ou side-by-side. Le défilement continu empile toutes les pages dans un même conteneur, ce qui compte lorsqu'une annotation doit franchir un saut de page. La vue paginée affiche une page à la fois avec des commandes de navigation et convient aux documents longs, traités page par page.
Trois modes d'annotation
annotation_mode décide de ce que la personne qui annote peut tracer, et c'est l'option qui change la tâche elle-même, pas son apparence. La valeur par défaut est span.
| Mode | Ce que fait la personne qui annote | Ancré sur |
|---|---|---|
span | Sélectionne du texte et lui applique une étiquette | La couche de texte de PDF.js |
bounding_box | Trace une boîte n'importe où sur la page | Les coordonnées de la page |
link | Pose des ancres, puis les relie | Spans de texte et régions de page |
Le mode span suppose que le PDF porte une couche de texte, ce qui est le cas de tout PDF produit par un traitement de texte ou un système de composition, et ne l'est pas d'une numérisation. Le mode boîte englobante ne le suppose pas, si bien qu'une page numérisée peut tout de même être étiquetée par région, sans la moindre extraction de texte.
Comme l'affichage pdf ancre les spans via la couche de texte de PDF.js et non via le conteneur .text-content qu'utilisent les autres affichages, il n'accepte pas l'indicateur span_target. L'annotation de spans fonctionne quand même, par la couche de texte propre au PDF.
Liens entre pages
Le mode lien sert aux relations qui traversent les pages, par exemple une affirmation en page 2 qui s'appuie sur une figure en page 9. La personne qui annote pose d'abord les ancres, puis trace des liens typés entre elles, et Potato enregistre les ancres et les liens sous des noms de schéma distincts.
instance_display:
fields:
- key: pdf
type: pdf
label: "Document"
display_options:
annotation_mode: link
view_mode: scroll
enable_text_anchors: true
enable_region_anchors: true
anchor_schema: pdf_anchors
link_schema: pdf_links
anchor_labels:
- name: claim
color: "#dc2626"
- name: figure
color: "#2563eb"
link_types:
- name: refers_to
directed: true
color: "#dc2626"
allowed_source_labels: [claim]
allowed_target_labels: [figure]allowed_source_labels et allowed_target_labels restreignent les ancres qu'un type de lien peut relier, ce qui transforme une consigne en règle appliquée par l'interface au lieu d'une règle que la personne qui annote doit retenir. Un lien refers_to configuré comme ci-dessus ne peut partir que d'un claim et n'aboutir qu'à un figure, donc un lien tracé d'une figure vers une affirmation est refusé. Mettez directed: false pour une relation symétrique comme same_as.
Les ancres sont de deux sortes et chacune se désactive séparément. enable_text_anchors autorise le surlignage d'un span de texte, et enable_region_anchors autorise le tracé d'une boîte de région, ce dont une figure ou un tableau a besoin. Un exemple complet et détaillé est livré en amont dans examples/advanced/pdf-link-scroll/.
Documents numérisés et OCR
ocr est désactivé par défaut, et Potato ne lit cette option qu'en mode lien. Lorsqu'elle est définie, les mots sont extraits côté serveur et servent à construire une couche de texte côté client, de sorte qu'une numérisation sans texte incorporé peut malgré tout porter des ancres de texte. L'option prend false, true ou auto, et Potato rejette toute autre valeur.
instance_display:
fields:
- key: pdf
type: pdf
display_options:
annotation_mode: link
ocr: auto
ocr_dpi: 200
ocr_lang: engLes trois réglages diffèrent par le moment où la passe s'exécute. false n'utilise que la couche de texte incorporée, true exécute toujours l'OCR, et auto ne se rabat sur l'OCR que lorsque la couche de texte incorporée revient vide. Préférez auto sur un corpus mixte, car l'OCR est lent et exige que Tesseract soit installé. ocr_dpi contrôle la résolution à laquelle chaque page est rastérisée avant lecture par l'OCR, et l'augmenter coûte du temps sur chaque page. ocr_lang prend un code de langue Tesseract et vaut eng par défaut.
Options d'affichage
| Option | Par défaut | Effet |
|---|---|---|
view_mode | scroll | scroll, paginated ou side-by-side |
max_height | 700 | Hauteur du conteneur en pixels |
max_width | aucune | Largeur du conteneur |
text_layer | true | Active la sélection de texte |
show_page_controls | true | Commandes de navigation entre pages |
initial_page | 1 | Page affichée en premier |
zoom | auto | auto, page-fit, page-width ou un pourcentage |
annotation_mode | span | span, bounding_box ou link |
bbox_min_size | 10 | Plus petite boîte acceptée, en pixels |
bbox_colors | aucune | Couleurs de boîte par étiquette |
show_bbox_labels | true | Dessine les étiquettes sur les boîtes |
thumbnail_sidebar | true | Miniatures de pages en vue paginée |
enable_text_anchors | true | Spans de texte utilisables comme ancres de lien |
enable_region_anchors | true | Boîtes de région utilisables comme ancres de lien |
anchor_schema | pdf_anchors | Schéma enregistré sur les ancres |
link_schema | pdf_links | Schéma enregistré sur les liens |
ocr | false | false, true ou auto |
ocr_dpi | 200 | Résolution de rendu pour l'OCR |
ocr_lang | eng | Code de langue Tesseract |
Fichiers Word et Markdown
Un fichier DOCX ou Markdown passe plutôt par l'affichage document, qui conserve la structure de titres et de paragraphes du document et accepte, lui, span_target. Il lit annotation_mode avec span ou bounding_box, et show_outline construit une table des matières à partir des titres du corps. Potato fait passer le balisage rendu par une liste d'autorisation avant qu'il n'atteigne la personne qui annote, si bien qu'un champ du corpus porteur d'une balise exécutable est retiré plutôt qu'exécuté.
instance_display:
fields:
- key: report
type: document
label: "Report"
display_options:
show_outline: true
max_height: 600Pour aller plus loin
- Affichage des instances répertorie tous les types d'affichage et ceux qui acceptent des cibles de span.
- Annotation de spans couvre les options d'étiquette que prend un schéma de span.
- Comment annoter des documents déroule une tâche de relecture documentaire de bout en bout.
- Pour les détails d'implémentation, voir la documentation source.