Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Page d'impression

13 réponses
Avatar
Gloops
Bonjour tout le monde,

Cet apr=E8s-midi je me suis pos=E9 la question d'une page d'impression, q=
ui=20
=E9vite de ratatiner =E0 l'impression le contenu au milieu des barres de =

navigation, dont en d=E9finitive on n'a gu=E8re l'usage sur papier. Ce qu=
i=20
=E9vite donc aussi =E0 l'utilisateur d'avoir =E0 copier le contenu utile =
vers=20
Word, ou utiliser la commande Imprimer / S=E9lection.

Les r=E9ponses que j'ai trouv=E9es passent par les styles, avec une claus=
e=20
media:print pour rendre les parties concern=E9es invisibles.

Il me semble pourtant me souvenir qu'il existe aussi une autre r=E9ponse,=
=20
avec une page affect=E9e =E0 l'impression, au niveau du serveur, mais alo=
rs=20
je n'ai pas retrouv=E9 comment on met =E7a en =9Cuvre -m=EAme dans les s=
upports=20
de cours, du coup j'en arrive =E0 me demander si je ne confonds pas avec =

une autre plateforme.

Quelqu'un saurait-il me rafra=EEchir la m=E9moire ?
Peut-=EAtre aurait-il mieux valu poser la question dans le newsgroup vstu=
dio ?

10 réponses

1 2
Avatar
Patrice
Certains sites ont une "version imprimable" qui se contente de masquer les
éléments qui ne sont pas utiles à l'impression (peut-être en ne les rendant
pas dans la page HTML générée). Par example en ASP.NET en mettant la
propriété Visible du contrôle à False...

--
Patrice


"Gloops" a écrit dans le message de
news:
Bonjour tout le monde,

Cet après-midi je me suis posé la question d'une page d'impression, qui
évite de ratatiner à l'impression le contenu au milieu des barres de
navigation, dont en définitive on n'a guère l'usage sur papier. Ce qui
évite donc aussi à l'utilisateur d'avoir à copier le contenu utile vers
Word, ou utiliser la commande Imprimer / Sélection.

Les réponses que j'ai trouvées passent par les styles, avec une clause
media:print pour rendre les parties concernées invisibles.

Il me semble pourtant me souvenir qu'il existe aussi une autre réponse,
avec une page affectée à l'impression, au niveau du serveur, mais alors
je n'ai pas retrouvé comment on met ça en œuvre -même dans les supports
de cours, du coup j'en arrive à me demander si je ne confonds pas avec
une autre plateforme.

Quelqu'un saurait-il me rafraîchir la mémoire ?
Peut-être aurait-il mieux valu poser la question dans le newsgroup vstudio ?
Avatar
Gloops
Patrice a écrit, le 10/12/2009 21:03 :
Certains sites ont une "version imprimable" qui se contente de masquer
les éléments qui ne sont pas utiles à l'impression (peut-être e n ne les
rendant pas dans la page HTML générée). Par example en ASP.NET en
mettant la propriété Visible du contrôle à False...




Oui, c'est bien ça que je voulais dire.
Je n'arrive pas à retrouver dans les propriétés des pages, où on dit
quelle est la page d'impression. Ou alors c'est au niveau du site, dans
le web.config ? Mais je n'arrive pas à être plus précis ...
Avatar
Patrice
Ce n'est pas automatique. C'est toi qui dit ce que tu veux faire. Cela peut
donner qq chose comme une page avec un menu et du contenu :

<body>
<form id="form1" runat="server">
<div>
<asp:Menu runat="server" Orientation="Horizontal" ID="MyMenu">
<DynamicMenuItemStyle BackColor="LightBlue" BorderColor="Black" />
<Items>
<asp:MenuItem Text="Item 1">
<asp:MenuItem Text="Item 1.1" />
<asp:MenuItem Text="Item 1.2" />
<asp:MenuItem Text="Item 1.3" />
</asp:MenuItem>
<asp:MenuItem Text="Item 2" >
<asp:MenuItem Text="Item 2.1" />
</asp:MenuItem>
</Items>
</asp:Menu>
<br />
<a href="?print=yes">Version imprimable</a>
<br />
Mon super article
</div>
</form>
</body>

Et dans le "code-behind" :
protected void Page_Load(object sender, EventArgs e)
{
MyMenu.Visible = Request.QueryString["print"] != "yes";
}

Quand la page est lancée :
- on a un menu et du contenu
- lorsqu'on clique sur le lien, la page est réaffichée mais sans le menu

--
Patrice

"Gloops" a écrit dans le message de
news:%
Patrice a écrit, le 10/12/2009 21:03 :
Certains sites ont une "version imprimable" qui se contente de masquer les
éléments qui ne sont pas utiles à l'impression (peut-être en ne les
rendant pas dans la page HTML générée). Par example en ASP.NET en mettant
la propriété Visible du contrôle à False...




Oui, c'est bien ça que je voulais dire.
Je n'arrive pas à retrouver dans les propriétés des pages, où on dit
quelle est la page d'impression. Ou alors c'est au niveau du site, dans
le web.config ? Mais je n'arrive pas à être plus précis ...
Avatar
Gloops
Effectivement, on peut faire comme ça. Il n'est d'ailleurs pas certain
que ce soit plus compliqué par les styles.

Bon, clairement, pour la déclaration d'une page dédiée à l'impres sion,
j'ai l'impression que j'ai confondu avec une autre plateforme.

Je n'ai pas tout perdu à lancer cette question, car pour les menus
dynamiques j'étais prêt à partir directement sur Javascript, ça m érite
peut-être un peu plus réflexion.

Merci pour ces éléments.
______________________________________
Patrice a écrit, le 10/12/2009 23:43 :
Ce n'est pas automatique. C'est toi qui dit ce que tu veux faire. Cela
peut donner qq chose comme une page avec un menu et du contenu :

<body>
<form id="form1" runat="server">
<div>
<asp:Menu runat="server" Orientation="Horizontal" ID="MyMenu">
<DynamicMenuItemStyle BackColor="LightBlue" BorderColor="Black" />
<Items>
<asp:MenuItem Text="Item 1">
<asp:MenuItem Text="Item 1.1" />
<asp:MenuItem Text="Item 1.2" />
<asp:MenuItem Text="Item 1.3" />
</asp:MenuItem>
<asp:MenuItem Text="Item 2" >
<asp:MenuItem Text="Item 2.1" />
</asp:MenuItem>
</Items>
</asp:Menu>
<br />
<a href="?print=yes">Version imprimable</a>
<br />
Mon super article
</div>
</form>
</body>

Et dans le "code-behind" :
protected void Page_Load(object sender, EventArgs e)
{
MyMenu.Visible = Request.QueryString["print"] != "yes";
}

Quand la page est lancée :
- on a un menu et du contenu
- lorsqu'on clique sur le lien, la page est réaffichée mais sans le menu

--
Patrice

"Gloops" a écrit dans le message de
news:%
Patrice a écrit, le 10/12/2009 21:03 :
Certains sites ont une "version imprimable" qui se contente de masquer
les éléments qui ne sont pas utiles à l'impression (peut-être en ne
les rendant pas dans la page HTML générée). Par example en ASP.N ET en
mettant la propriété Visible du contrôle à False...




Oui, c'est bien ça que je voulais dire.
Je n'arrive pas à retrouver dans les propriétés des pages, où o n dit
quelle est la page d'impression. Ou alors c'est au niveau du site, dans
le web.config ? Mais je n'arrive pas à être plus précis ...


Avatar
Patrice
> Bon, clairement, pour la déclaration d'une page dédiée à l'impression,
j'ai l'impression que j'ai confondu avec une autre plateforme.



Il faut bien que tu indiques à un moment ce que tu veux imprimer ou pas. De
toute façon si c'est du web, il faut bien finir par générer du HTML donc à
part les styles qui permettent de visualiser ou d'imprimer la même page mais
d'avoir une apparence différente à l'écran et à l'impression ou à générer du
code HTML différent d'emblée selon le cas, je ne vois pas d'autre solution
qq soit la technologie employée par le serveur web...

--
Patrice
Avatar
Christophe Lephay
"Gloops" a écrit dans le message de groupe de
discussion : #

Effectivement, on peut faire comme ça. Il n'est d'ailleurs pas certain que
ce soit plus compliqué par les styles.



Une différence tout de même : plus tu as de pages, plus le coût des styles
s'amortit.
Avatar
Gloops
Patrice a écrit, le 11/12/2009 11:26 :
Bon, clairement, pour la déclaration d'une page dédiée à l'imp ression,
j'ai l'impression que j'ai confondu avec une autre plateforme.



Il faut bien que tu indiques à un moment ce que tu veux imprimer ou p as.
De toute façon si c'est du web, il faut bien finir par générer du HTML
donc à part les styles qui permettent de visualiser ou d'imprimer la
même page mais d'avoir une apparence différente à l'écran et à
l'impression ou à générer du code HTML différent d'emblée sel on le cas,
je ne vois pas d'autre solution qq soit la technologie employée par l e
serveur web...



Je pensais à carrément une autre page développée juste pour
l'impression. C'est vrai que c'était un peu absurde de la chercher au
niveau du serveur, sauf à passer un contenu en paramètre. Du coup ce que
dit Christophe au sujet de l'amortissement des coûts prend d'autant plu s
de poids.
Avatar
Gloops
Christophe Lephay a écrit, le 11/12/2009 18:06 :
"Gloops" a écrit dans le message de group e
de discussion : #

Effectivement, on peut faire comme ça. Il n'est d'ailleurs pas certa in
que ce soit plus compliqué par les styles.



Une différence tout de même : plus tu as de pages, plus le coût d es
styles s'amortit.



Oui, non seulement ce n'est pas plus compliqué, mais en plus c'est plus
économique. Et ça marche aussi si l'utilisateur lance l'impression av ec
la fonction d'impression de son navigateur.

Alors après il faut voir si l'utilisateur pour une raison ou une autre
veut une trace de la partie navigation, si on fignole tout bien pour que
ça ne s'imprime pas il ne reste plus que la copie d'écran. Ou alors
prévoir la logique inverse : dans la majorité des cas on part du
principe que si on imprime c'est le contenu qu'on veut sur le papier,
donc on règle les styles pour que les barres de navigation ne
s'impriment pas, et si le site est aussi à disposition d'une catégori e
de personnel en charge de la rédaction de modes opératoires, qui peuv ent
avoir besoin d'imprimer avec les barres de navigation, on peut prévoir
un bouton qui modifie les styles. Quoique dans ce cas, mettre à
disposition une deuxième feuille de style à sélectionner localement peut
s'avérer une bonne idée, ça évite à l'utilisateur lambda de cli quer où
il ne fallait pas.
Avatar
Patrice
> Je pensais à carrément une autre page développée juste pour l'impression.
C'est vrai que c'était un peu absurde de la chercher au niveau du serveur,
sauf à passer un contenu en paramètre. Du coup ce que dit Christophe au
sujet de l'amortissement des coûts prend d'autant plus de poids.



Une page totalement séparée poserait aussi beaucoup de problème de mises à
jour entre les deux versions (ou alors le contenu est en base de données ce
qui revient finalement plus au moins au principe montre précédemment, le
contenu est le même l'habillage est montré ou pas ce qui pourrait d'ailleurs
éventuellement se faire aussi avec des "master page". Serait ce à cela que
tu pensais ?).

Sinon, le plus simple est sans doute de voir ce que tu veux faire et de
choisir la technique en fonction plutôt que de se souvenir d'une vague
technique et d'essayer de la retrouver pour l'appliquer ;-)

Personnellement :
- si la différence entre ce que l'utilisateur voit et ce qui imprimé est
minime, j'utiliserai un style spécifique à l'impression (par exemple masquer
simplement un bouton)
- si la différence est trop importante j'utiliserai un lien permettant à
l'utilisateur de demander une page spécifique à l'impression (mais bien sûr
faite astucieusement pour ne pas avoir à maintenir deux pages totalement
séparées) pour qu'il voit bien que la version imprimée sera plus dépouillée
- l'un n'empêche pas l'autre (par exemple même sur une version "imprimable"
on peut garder des liens à l'écran pour la lecture soit facile et il suffit
de cliquer pour suivre le lien et tout de même ajouter des styles
spécifiques à l'impression pour faire apparaitre les "href" des liens à
l'impression).

--
Patrice
Avatar
Gloops
Patrice a écrit, le 11/12/2009 20:53 :
Je pensais à carrément une autre page développée juste pour
l'impression. C'est vrai que c'était un peu absurde de la chercher a u
niveau du serveur, sauf à passer un contenu en paramètre. Du coup ce
que dit Christophe au sujet de l'amortissement des coûts prend
d'autant plus de poids.



Une page totalement séparée poserait aussi beaucoup de problème d e mises
à jour entre les deux versions (ou alors le contenu est en base de
données ce qui revient finalement plus au moins au principe montre
précédemment, le contenu est le même l'habillage est montré ou pas ce
qui pourrait d'ailleurs éventuellement se faire aussi avec des "maste r
page". Serait ce à cela que tu pensais ?).

Sinon, le plus simple est sans doute de voir ce que tu veux faire et de
choisir la technique en fonction plutôt que de se souvenir d'une vagu e
technique et d'essayer de la retrouver pour l'appliquer ;-)

Personnellement :
- si la différence entre ce que l'utilisateur voit et ce qui imprimé est
minime, j'utiliserai un style spécifique à l'impression (par exempl e
masquer simplement un bouton)
- si la différence est trop importante j'utiliserai un lien permettan t à
l'utilisateur de demander une page spécifique à l'impression (mais bien
sûr faite astucieusement pour ne pas avoir à maintenir deux pages
totalement séparées) pour qu'il voit bien que la version imprimée sera
plus dépouillée
- l'un n'empêche pas l'autre (par exemple même sur une version
"imprimable" on peut garder des liens à l'écran pour la lecture soi t
facile et il suffit de cliquer pour suivre le lien et tout de même
ajouter des styles spécifiques à l'impression pour faire apparaitre les
"href" des liens à l'impression).




Classiquement, c'est le contenu qu'on imprime, il me semble. A moins que
la présentation sorte largement des sentiers battus, auquel cas
évidemment il faut se poser la question spécifiquement. Je suppose qu e
c'est quand le côté artistique du contenu a une grande importance qu' on
sort des sentiers battus pour la présentation. Si le contenu a un fort
ratio d'information par rapport au côté artistique, un certain consen sus
semble se dessiner pour éviter de trop dérouter le lecteur, faute de
quoi on risque de le perdre (et l'information, ça peut aussi inclure de s
dates de concert). Enfin en définitive je recrache des lectures qui ne
m'ont pas fait tiquer.

C'est vrai qu'on peut prendre le problème dans le sens inverse.
A part doter toutes les parties de la masterpage de styles qui ne les
font pas apparaître à l'impression, il y a aussi la solution de
réafficher la page sans page maîtresse, en revenant à ce que tu dis ais,
cliquer sur un bouton sur la page -en supposant que ça puisse se faire
par code. Tiens oui je vais peut-être m'accorder une petite journée p our
jouer avec ça :)
1 2