Suivre un article de colonne en colonne

Dire dans quel ordre les morceaux d'un même article se lisent, quand il court sur plusieurs colonnes et plusieurs pages.

Écrit au premier niveau d'une requête, sous "articles"

En mots de tous les jours

Écrit pour tout le monde. Il dit ce que cela pose sur une feuille de papier, et ne vous demande rien de plus.

Dans un journal, un article commence en première page, dans une colonne, et se termine trois pages plus loin. À côté, un autre article fait pareil. Rien sur la feuille ne dit lequel continue lequel : le lecteur cherche. Ici, on peut le dire : voilà les morceaux de cet article, dans l'ordre où on les lit. Le logiciel d'affichage saute alors du bas d'un morceau au haut du suivant, sur la bonne page, sans qu'on ait rien à chercher.

Pour un développeur

Écrit pour celui qui écrit le programme appelant : le modèle, les unités, et les réglages qui portent le poids.

articles déclare des fils de lecture : chacun porte un titre et la suite des zones de page qu'il parcourt, dans l'ordre. Un lecteur qui suit un fil passe du bas d'une zone au haut de la suivante, quelle que soit la page. Chaque zone est un rectangle donné par son coin en bas à gauche, sa largeur et sa hauteur, sur une page nommée par son numéro. Un fil se décrit aussi par son auteur, son sujet et ses mots-clés.

Chaque clé, avec son défaut

La référence : quelles clés sont obligatoires, lesquelles sont facultatives, ce que vaut chacune par défaut et quelles combinaisons le serveur décline.

  • articles — tableau, facultatif, vide par défaut.
  • articles[].title — chaîne, obligatoire. Ce que le lecteur affiche pour lui.
  • articles[].author — chaîne, facultative. Absente, le fil n'en dit rien.
  • articles[].subject — chaîne, facultative. Absente, le fil n'en dit rien.
  • articles[].keywords — chaîne, facultative. Absente, le fil n'en déclare aucun.
  • articles[].patches — tableau, obligatoire, au moins une entrée. Les zones parcourues, dans l'ordre de lecture. Un fil sans zone est refusé.
  • patches[].page — entier ≥ 1, obligatoire. La page où la zone se trouve. Une page que le document n'a pas est refusée.
  • patches[].x, patches[].y — nombres, obligatoires. Le coin en bas à gauche.
  • patches[].width, patches[].height — nombres, obligatoires.

Une requête entière qui le dessine

Envoyez ceci tel quel et un PDF revient. Rien n'en a été retiré.

{
  "articles": [
    {
      "title": "The bridge reopens",
      "author": "Claire Vasseur",
      "patches": [
        { "page": 1, "x": 60, "y": 500, "width": 220, "height": 240 },
        { "page": 2, "x": 60, "y": 500, "width": 220, "height": 240 }
      ]
    }
  ],
  "standard_fonts": [{ "name": "sans", "face": "helvetica" }],
  "items": [
    {
      "type": "text",
      "pages": [1],
      "rect": { "llx": 60, "lly": 500, "urx": 280, "ury": 740 },
      "content": ["The bridge reopens after two years of work,"],
      "font": "sans",
      "font_size": 10
    },
    {
      "type": "text",
      "pages": [2],
      "rect": { "llx": 60, "lly": 500, "urx": 280, "ury": 740 },
      "content": ["and the buses run over it again from Monday."],
      "font": "sans",
      "font_size": 10
    }
  ]
}

La ligne qui l'envoie, en trois langages

S'y retrouver

L'ordre du passage d'un champ au suivant Le sommaire cliquable sur le côté Des points d'arrivée qui portent un nom Comment le document s'ouvre et s'imprime

Où aller ensuite

Chaque clé d'une requête, en une page Les trente-deux autres réglages d'une requête

Voir les prix Voir les exemples