J'ai un rapport HTML qui doit être imprimé en mode paysage en raison de ses nombreuses colonnes. Existe-t-il un moyen de le faire, sans que l'utilisateur doive modifier les paramètres du document ?
Et quelles sont les options parmi les navigateurs.
J'ai un rapport HTML qui doit être imprimé en mode paysage en raison de ses nombreuses colonnes. Existe-t-il un moyen de le faire, sans que l'utilisateur doive modifier les paramètres du document ?
Et quelles sont les options parmi les navigateurs.
Dans votre CSS, vous pouvez définir la propriété @page comme indiqué ci-dessous.
@media print{@page {size: landscape}}
La @page fait partie de Spécification CSS 2.1 Cependant, cette size
n'est pas comme le souligne la réponse à la question Est-ce que @Page { size:landscape} est obsolète ? :
La norme CSS 2.1 ne spécifie plus l'attribut size. La méthode de travail actuelle projet actuel de module CSS3 Paged Media le spécifie (mais il n'est ni standard ni accepté). standard ou accepté).
Comme indiqué, l'option de taille provient de l'option Projet de spécification CSS 3 . En théorie, il est possible de définir à la fois un format de page et une orientation, mais dans mon exemple, le format est omis.
Le support est très mixte avec un début du rapport de bogue dans firefox la plupart des navigateurs ne le prennent pas en charge.
Cela peut sembler fonctionner dans IE7, mais c'est parce que IE7 se souviendra de la dernière sélection de l'utilisateur entre paysage et portrait dans l'aperçu avant impression (seulement lorsque le navigateur est redémarré).
Cet article Il existe des solutions de contournement utilisant JavaScript ou ActiveX qui envoient des clés au navigateur de l'utilisateur, mais elles ne sont pas idéales et reposent sur la modification des paramètres de sécurité du navigateur.
Vous pouvez également faire pivoter le contenu plutôt que l'orientation de la page. Pour ce faire, il suffit de créer un style et de l'appliquer au corps de la page en incluant ces deux lignes, mais cette méthode présente également des inconvénients, car elle crée de nombreux problèmes d'alignement et de mise en page.
<style type="text/css" media="print">
.page
{
-webkit-transform: rotate(-90deg);
-moz-transform:rotate(-90deg);
filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
</style>
La dernière solution que j'ai trouvée consiste à créer une version paysage dans un PDF. Vous pouvez pointer vers de sorte que lorsque l'utilisateur sélectionne l'impression, il imprime le PDF. Cependant, je n'ai pas réussi à faire fonctionner l'impression automatique dans IE7.
<link media="print" rel="Alternate" href="print.pdf">
En conclusion, dans certains navigateurs, il est relativement facile d'utiliser l'option @page size, mais dans de nombreux navigateurs, il n'y a pas de méthode sûre et cela dépend de votre contenu et de votre environnement. C'est peut-être la raison pour laquelle Google Documents crée un PDF lorsque l'impression est sélectionnée et permet ensuite à l'utilisateur de l'ouvrir et de l'imprimer.
C'est étrange que le texte indique que la "taille" peut être un paysage, alors qu'il s'agit en fait d'une "orientation".
@page size
Ne semble pas fonctionner sur tous les navigateurs modernes, seulement sur Firefox. Chrome et Opera n'en tiennent pas compte, d'après ce que j'ai vu.
Cela a-t-il fonctionné pour vous avec l'un des navigateurs ? Avec IE8 et Firefox3.5, cela ne semble pas faire de différence dans l'aperçu avant impression.
L'aperçu avant impression ne respecte pas toutes les propriétés CSS, malheureusement. Mais cela devrait fonctionner dans tous les navigateurs actuels.
J'ai essayé toutes les combinaisons de la règle @Page présentée sur cette page et sur d'autres sites, ainsi que l'exemple du livre HTML/XHTML de O'Reilly : The Definitive Guide, Fifth Edition. Je n'ai pas réussi à la faire fonctionner dans IE8, Firefox 3.6 ou Chrome 7.0.
Citation tirée de Wiki CSS-Discuss
La règle de la @page a été réduite en portée de CSS2 à CSS2.1. La règle complète de règle @page de CSS2 aurait été implémentée uniquement dans Opera (et de manière même dans ce cas). Mes propres tests montrent que IE et Firefox ne supportent pas du tout @page. pas du tout. Selon la désormais obsolète la section 13.2.2 de la spécification CSS2, il est possible d'ignorer le réglage de l'utilisateur de l'utilisateur et (par exemple) et (par exemple) forcer l'impression en format paysage mais la propriété "size" correspondante a a été supprimée de CSS2.1, conformément avec le fait qu'aucun navigateur actuel ne la prend en charge. Elle a été réintégrée dans dans le module CSS3 Paged Media, mais notez qu'il ne s'agit que d'un projet de travail (en juillet 2009).
Conclusion : oubliez l'@page pour le moment. Si vous pensez que votre document doit être imprimé en orientation Paysage, demandez-vous si vous ne pouvez pas plutôt rendre votre design plus fluide. Si vous ne pouvez vraiment pas (peut-être parce que le document contient des tableaux de données à plusieurs colonnes, par par exemple), vous devrez conseiller à l'utilisateur utilisateur de définir l'orientation sur Paysage et, éventuellement, expliquer comment comment le faire dans les navigateurs les plus courants. Sur Bien entendu, certains navigateurs disposent d'une ajustement à la largeur (rétrécissement à la taille) (par exemple, Opera, Firefox, IE7) mais il est mais il est déconseillé de compter sur le fait que les utilisateurs cette fonction ou qu'elle soit activée. sur.
Vous pourrez peut-être utiliser le Règle CSS 2 @page qui vous permet de définir le propriété 'size' pour le paysage .
Vous pouvez également utiliser l'attribut css non standard réservé à IE. mode d'écriture
div.page {
writing-mode: tb-rl;
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.