Insérer des fichiers PDF dans un document ConTeXt

Avant toutes chose pour illustrer les exemples j'ai créé deux fichiers .tex, le premier est défini de cette façon :

\definepapersize[fiche][width=10cm,height=10cm]
\setuppapersize[fiche]
\setuplayout[footerdistance=0.25cm]
\setupheader[strut=yes,before={\startcolor[blue]},after=\stopcolor]
\setupheadertexts[Mon entête]
\setupfooter[strut=yes,before={\startcolor[blue]},after=\stopcolor]
\setupfootertexts[Le pied de page][pagenumber]
\starttext
We thrive in information--thick worlds because of our marvelous and everyday capacity to select, edit, single out, structure, highlight, group, pair, merge, harmonize, synthesize, focus, organize, condense, reduce, boil down, choose, categorize, catalog, classify, list, abstract, scan, look into, idealize, isolate, discriminate, distinguish, screen, pigeonhole, pick over, sort, integrate, blend, inspect, filter, lump, skip, smooth, chunk, average, approximate, cluster, aggregate, outline, summarize, itemize, review, dip into, flip through, browse, glance into, leaf through, skim, refine, enumerate, glean, synopsize, winnow the wheat from the chaff and separate the sheep from the goats.
\stoptext

et produit le document suivant :

C'est dans ce document que je vais insérer le fichier PDF (le-pdf.pdf) que j'ai créé avec un deuxième fichier .tex défini comme suit :

\definepapersize[fiche][width=10cm,height=10cm]
\setuppapersize[fiche]
\setuppagenumbering[location=]
\setuplayout[footerdistance=1cm,headerdistance=1cm]
\setupheader[strut=yes,before={\startcolor[red]},after=\stopcolor]
\setupheadertexts[L'entête du PDF]
\setupfooter[strut=yes,before={\startcolor[red]},after=\stopcolor]
\setupfootertexts[Le pied de page du PDF]
\starttext
\startcolor[green]
\definedfont[SansBold at 35pt]
\dorecurse{4}{PDF page 1\par}
\page
\dorecurse{4}{PDF page 2\par}
\page
\dorecurse{4}{PDF page 3\par}
\page
\dorecurse{4}{PDF page 4\par}
\page
\dorecurse{4}{PDF page 5\par}
\page
\dorecurse{4}{PDF page 6\par}
\stopcolor
\stoptext

Il produit ceci :

Insérer le PDF comme une illustration

Tu utlises :

\externalfigure[fichier.pdf][options]

Je te renvoies à la fiche Insérer des petits Mickey pour de plus amples renseignements. Tu peux choisir la page du document PDF a insérer avec l'option page=

Attention à chaque fois que tu utilises une = ne l'entoure pas d'espace. Si sous LaTeX cela n'a aucune importance, ConTeXt n'aime pas du tout et c'est source d'erreur de compilation difficile à retrouver. Donc tu écris page=3 et pas page = 3 ou page= 3.

. . .
\starttext
We thrive in information--thick worlds because of our marvelous and everyday

\externalfigure[le-pdf.pdf][page=3,width=3.5cm]

capacity to select, edit, single out, structure, highlight, group, pair, merge, harmonize, synthesize, focus, organize, condense, reduce, boil down, choose, categorize, catalog, classify, list, abstract, scan, look into, idealize, isolate, discriminate, distinguish, screen, pigeonhole, pick over, sort, integrate, blend, inspect, filter, lump, skip, smooth, chunk, average, approximate, cluster, aggregate, outline, summarize, itemize, review, dip into, flip through, browse, glance into, leaf through, skim, refine, enumerate, glean, synopsize, winnow the wheat from the chaff and separate the sheep from the goats.
\stoptext

Tu peux également utiliser les flottants :

. . .
\starttext
We thrive in information--thick worlds because of our marvelous and everyday
\placefigure[none]{}{\externalfigure[le-pdf.pdf][page=3,width=6cm]}

capacity to select, edit, single out, structure, highlight, group, pair, merge, harmonize, synthesize, focus, organize, condense, reduce, boil down, choose, categorize, catalog, classify, list, abstract, scan, look into, idealize, isolate, discriminate, distinguish, screen, pigeonhole, pick over, sort, integrate, blend, inspect, filter, lump, skip, smooth, chunk, average, approximate, cluster, aggregate, outline, summarize, itemize, review, dip into, flip through, browse, glance into, leaf through, skim, refine, enumerate, glean, synopsize, winnow the wheat from the chaff and separate the sheep from the goats.
\stoptext

Insérer le PDF comme des images pleine page

Il faut utiliser :

\copypages[fichier.pdf][n=x]

n est le nombre de page du PDF à insérer en commençant à la première page :

. . .
\starttext
We thrive in information--thick worlds because of our marvelous and everyday

\copypages[le-pdf.pdf][n=3]

capacity to select, edit, single out, structure, highlight, group, pair, merge, harmonize, synthesize, focus, organize, condense, reduce, boil down, choose, categorize, catalog, classify, list, abstract, scan, look into, idealize, isolate, discriminate, distinguish, screen, pigeonhole, pick over, sort, integrate, blend, inspect, filter, lump, skip, smooth, chunk, average, approximate, cluster, aggregate, outline, summarize, itemize, review, dip into, flip through, browse, glance into, leaf through, skim, refine, enumerate, glean, synopsize, winnow the wheat from the chaff and separate the sheep from the goats.
\stoptext

Bon évidement ça ne marche pas terrible. Effectivement les deux documents ayant les mêmes dimensions, ça ce chevauche, il faut mettre le PDF à l'échelle par :

\copypages[le-pdf.pdf][n=3][scale=750]

pour réduire le PDF à 75 %

Si tu veux insérer des pages blanches entre les pages de ton PDF par exemple insérer les 4 premières pages de ton PDF avec une séparation entre les pages 1 et 2 et 3 et 4 tu fais comme suit :

. . .
\starttext
We thrive in information--thick worlds because of our marvelous and everyday
\insertpages[le-pdf.pdf][1,3][n=4,scale=750]

capacity to select, edit, single out, structure, highlight, group, pair, merge, harmonize,
. . .
\stoptext

Si tu ne veux pas commencer à la première page, mais insérrer différentes pages de ton PDF tu utilses \filterpages en séparant les pages choisies par des virgules ou un groupe de pages par des deux-points, par exemple pour insérer les pages 5, 12, 23 et les pages 44 à 51 tu écris :

\filterpages[fichier.pdf][5,12,23,44:51][width=18cm]

Tu n'es pas obliger de suivre la numérotation du PDF tu peux mélanger les pages :

. . .
\starttext
We thrive in information--thick worlds because of our marvelous and everyday

\filterpages[le-pdf.pdf][5,2][scale=750]

capacity to select, edit, single out, structure, highlight, group, pair, merge, harmonize,
. . .
\stoptext

donne

Tu peux à l'aide des options even et odd n'insérer que les pages paires ou impaires :

. . .
\starttext
We thrive in information--thick worlds because of our marvelous and everyday

\filterpages[le-pdf.pdf][even][scale=750]

capacity to select, edit, single out, structure, highlight, group, pair, merge, harmonize,
. . .
\stoptext

Fusionner une seule page PDF dans votre document

Pour insérer une page d'un document PDF après la page actuelle comme une pleine page sans ajouter les en-têtes, pieds de page, . . ., utilise :

. . .
\starttext
We thrive in information--thick worlds because of our marvelous and everyday
\startTEXpage
\externalfigure[le-pdf.pdf][page=3]
\stopTEXpage
capacity to select, edit, single out, structure, highlight, group, pair, merge, harmonize,
. . .
\stoptext

Si tu veux insérer plusieurs pages tu dois utiliser

\startTEXpage
\externalfigure[le-pdf.pdf][page=1]
\stopTEXpage
\startTEXpage
\externalfigure[le-pdf.pdf][page=3]
\stopTEXpage
\startTEXpage
\externalfigure[le-pdf.pdf][page=5]
\stopTEXpage

le code suivant ne marche pas

\startTEXpage
\externalfigure[le-pdf.pdf][page=1]
\externalfigure[le-pdf.pdf][page=3]
\externalfigure[le-pdf.pdf][page=5]
\stopTEXpage

Un exemple :

. . .
\starttext We thrive in information--thick worlds because of our marvelous and everyday
\startTEXpage
\externalfigure[le-pdf.pdf][page=1]
\stopTEXpage
\startTEXpage
\externalfigure[le-pdf.pdf][page=3]
\stopTEXpage
\startTEXpage
\externalfigure[le-pdf.pdf][page=5]
\stopTEXpage
capacity to select, edit, single out, structure, highlight, group, pair, merge, harmonize,
. . .
\stoptext

Comme tu peux le remarquer la numérotation de mon document (en bleu) n'a pas pris en compte l'ajout de page du PDF. Il faut intervenir avec la commande

\setcounter[userpage][numéro de page]

pour rectifier manuellement le numéro de page

. . .
\starttext
We thrive in information--thick worlds because of our marvelous and everyday
\startTEXpage
\externalfigure[le-pdf.pdf][page=1]
\stopTEXpage
\startTEXpage
\externalfigure[le-pdf.pdf][page=3]
\stopTEXpage
\startTEXpage
\externalfigure[le-pdf.pdf][page=5]
\stopTEXpage
\setcounter[userpage][5]
capacity to select, edit, single out, structure, highlight, group, pair, merge, harmonize,
. . .
\stoptext

Tu peux également et c'est plus simple, incrémenter le compteur de page du nombre de pages insérées :

\setcounter[userpage][\pagenumber+3]

Regrouper toutes les pages de ton PDF sur une seule page

Pour réaliser celà tu utilises :

\combinepages[le-pdf.pdf][nx=x,ny=y,frame=on]

nx indique le nombre d'images dans la largeur et ny dans la hauteur et frame la présence d'un cadre autour de chaque page du PDF

. . .
\starttext
We thrive in information--thick worlds because of our marvelous and everyday
\combinepages[le-pdf.pdf][nx=2,ny=3,frame=on]
capacity to select, edit, single out, structure, highlight, group, pair, merge, harmonize,
. . .
\stoptext

Découper un PDF

La commande \slicepages permet de découper chaque page d'un PDF selon une matrice défini par l'option n=. Si n=2, tu as une matrice 2x2, n=3 une matrice 3x3 . . .

Tu ne peux pas utiliser cette commande dans ton document car elle supprime toute mise en page, tu n'as plus de marge d'en-tête, de pied de page . . .

Pour comprendre comme ça marche voici un exemple. J'ai créer un PDF avec une seul page (la première page de le-pdf.pdf) que je vais découper avec une matrice de 3x3 :

\definepapersize[fiche][width=10cm,height=10cm]
\setuppapersize[fiche]
\setuplayout[footerdistance=0.25cm]
\setupheader[strut=yes,before={\startcolor[blue]},after=\stopcolor]
\setupheadertexts[Mon entête]
\setupfooter[strut=yes,before={\startcolor[blue]},after=\stopcolor]
\setupfootertexts[Le pied de page][pagenumber]
\starttext
\slicepages[le-pdf1.pdf][n=3]
\stoptext

Tu obtiens un PDF de 6 pages (j'ai encadré artificiellement sous inkscape les pages pour bien les distinguer) :