write_image.json

Le fichier JSON de l'exemple « Des images sur une page ». Une photo qui entre exactement comme elle est sortie de l'appareil, et une image à parties transparentes qui les garde, chacune sur une page taillée à sa mesure.

JSON 41 lignes

Ce fichier est une requête : une application l'envoie par le réseau au serveur, qui crée le PDF et le renvoie. Il donne la même page que les versions Rust et Python de cet exemple. Une requête nomme chaque fichier qu'elle emploie, jamais le contenu de ces fichiers ; l'appel porte la requête et les fichiers ensemble. Une police que le serveur détient déjà, comme DejaVuSans, se nomme sans rien y joindre. Envoyez la requête à l'adresse que donne la page de l'API.

Cette requête nomme des fichiers qu'elle ne contient pas : logo.png, photo.jpg. Chacun voyage à côté de la requête, dans le même appel, comme une pièce fournie nommée exactement comme la requête la nomme ici — la description dit quel nom joue quel rôle, vous nommez donc vos fichiers comme vous voulez. Une requête qui nomme un fichier dont l'appel ne contient rien est refusée.

À quoi sert cet exemple

Une photo compressée une fois, puis compressée une seconde fois par ce qui l'a mise dans le document, ressort molle, tachée sur les bords, et plus lourde que l'originale. C'est la façon la plus courante d'abîmer une bonne image entre l'appareil photo et l'imprimeur, et rien dans le fichier fini n'avoue que c'est arrivé.

Ce que montre cet exemple

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
  "metadata": {
    "title": "hqf-pdf image sample"
  },
  "page_sizes": [
    { "page": 1, "width": 160.0, "height": 120.0 },
    { "page": 2, "width": 96.0, "height": 96.0 }
  ],
  "items": [
    {
      "type": "image",
      "image": "photo.jpg",
      "rect": { "llx": 0.0, "lly": 0.0, "urx": 160.0, "ury": 120.0 },
      "pages": [1]
    },
    {
      "type": "image",
      "image": "logo.png",
      "rect": { "llx": 0.0, "lly": 0.0, "urx": 96.0, "ury": 96.0 },
      "pages": [2]
    },
    {
      "type": "rect",
      "rect": { "llx": 0.0, "lly": 700.0, "urx": 595.276, "ury": 842.0 },
      "fill": [0.93, 0.94, 0.96],
      "pages": [3]
    },
    {
      "type": "image",
      "image": "photo.jpg",
      "rect": { "llx": 60.0, "lly": 500.0, "urx": 273.33333333333331, "ury": 660.0 },
      "pages": [3]
    },
    {
      "type": "image",
      "image": "logo.png",
      "rect": { "llx": 380.0, "lly": 730.0, "urx": 470.0, "ury": 820.0 },
      "pages": [3]
    }
  ]
}