J'ai un rapport HTML, qui doit être imprimé en paysage à cause des nombreuses colonnes. Existe-t-il un moyen de le faire, sans que l'utilisateur n'ait à 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 la spécification CSS 2.1 mais ce size
n'est pas comme le souligne la réponse à la question @Page {size: landscape} est-il obsolète? :
CSS 2.1 ne spécifie plus l'attribut size. Le brouillon de travail actuel pour le module CSS3 Paged Media le spécifie (mais ce n'est pas standard ou accepté).
Comme indiqué, l'option de taille provient du projet de spécification CSS 3 . En théorie, il peut être défini à la fois sur une taille de page et une orientation bien que dans mon échantillon, la taille soit omise.
Le support est très mitigé avec un rapport de bogue commencé déposé dans firefox , la plupart des navigateurs ne le supportent pas.
Cela peut sembler fonctionner dans IE7, mais c'est parce qu'IE7 se souviendra de la dernière sélection de paysage ou de portrait de l'utilisateur dans l'aperçu avant impression (seul le navigateur est redémarré).
Cet article propose des solutions de contournement utilisant JavaScript ou ActiveX qui envoient des clés au navigateur des utilisateurs, bien qu'elles ne soient pas idéales et reposent sur la modification des paramètres de sécurité des navigateurs.
Alternativement, vous pouvez faire pivoter le contenu plutôt que l'orientation de la page. Cela peut être fait en créant un style et en l'appliquant au corps qui comprend ces deux lignes, mais cela présente également des inconvénients créant 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 alternative que j'ai trouvée est de créer une version paysage dans un PDF. Vous pouvez indiquer que lorsque l'utilisateur sélectionne imprimer, il imprime le PDF. Cependant, je n'ai pas pu obtenir ceci pour un travail d'impression automatique dans IE7.
<link media="print" rel="Alternate" href="print.pdf">
En conclusion, dans certains navigateurs, il est facile d'utiliser la relativité en utilisant l'option de taille @page, mais dans de nombreux navigateurs, il n'existe aucun moyen sûr et cela dépendra 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, puis permet à l'utilisateur de l'ouvrir et de l'imprimer.
@page size
Ne semble pas fonctionner sur tous les navigateurs modernes, seulement Firefox. Chrome et Opera n'en tiennent pas compte autant que je sache.size: landscape
ne fait PAS partie de CSS2.1, bien que les@page
règles le soient. Il fait cependant partie de CSS3. Pour confirmation, essayez d'utiliser le validateur CSS W3C et entrez@page {size: landscape}
et comparez les résultats avec "Profil" défini au niveau 2.1 par rapport au niveau 3.Ma solution:
Cela fonctionne dans
IE
,Firefox
etChrome
la source
class
div soient en paysage et non pas la page entière?Il ne suffit pas simplement de faire pivoter le contenu de la page. Voici un bon CSS qui fonctionne dans la plupart des navigateurs (Chrome, Firefox, IE9 +).
Définissez d'abord le corps
margin
sur 0, sinon les marges de page seront plus grandes que celles que vous avez définies dans la boîte de dialogue d'impression. Définissez également labackground
couleur pour visualiser les pages.margin
,border
Etbackground
sont nécessaires pour visualiser les pages.padding
doit être réglé sur la marge d'impression requise. Dans la boîte de dialogue d'impression, vous devez définir les mêmes marges (10 mm dans cet exemple).La taille de la page A4 est de 210 mm x 297 mm. Vous devez soustraire les marges d'impression de la taille. Et définissez la taille du contenu de la page:
J'utilise 276 mm au lieu de 277 mm, car différents navigateurs mettent à l'échelle les pages un peu différemment. Certains imprimeront donc du contenu d'une hauteur de 277 mm sur deux pages. La deuxième page sera vide. Il est plus sûr d'utiliser 276 mm.
Nous n'en avons pas besoin
margin
,border
,padding
,background
sur la page imprimée, afin de les enlever:Notez que l'origine de la transformation est
0 0
! Le contenu des pages paysage doit également être déplacé de 276 mm vers le bas!De plus, si vous avez un mélange de pages portrait et paysage, IE fera un zoom arrière sur les pages. Nous le
-ms-zoom
corrigeons en définissant sur 1.665. Si vous le définissez sur 1,6666 ou quelque chose comme ça, la bordure droite du contenu de la page peut être rognée parfois.Si vous avez besoin IE8- ou d' autres anciens navigateurs compatibles , vous pouvez utiliser
-webkit-transform
,-moz-transform
,filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)
. Mais pour les navigateurs assez modernes, ce n'est pas nécessaire.Voici une page de test:
la source
Extrait du Wiki CSS-Discuss
la source
Essayez d'ajouter ceci votre CSS:
la source
La
size
propriété est ce que vous recherchez comme mentionné. Pour définir à la fois l'orientation et la taille de votre page lors de l'impression, vous pouvez utiliser les éléments suivants:Voici un lien vers la documentation @page .
la source
.css
fichier séparé ou bien si elle est en ligne, la déclaration boostrap par défaut (size: a3
) aura la priorité.Vous pourrez peut-être utiliser la règle CSS 2 @page qui vous permet de définir la propriété 'size' sur paysage .
la source
Vous pouvez également utiliser le mode d'écriture d' attribut css non standard IE uniquement
la source
ne fonctionne pas dans Firefox 16.0.2 mais il fonctionne dans Chrome
la source
J'ai créé un document MS Document vierge avec paysage, puis l'ai ouvert dans le bloc-notes. Copié et collé ce qui suit sur ma page html
L'aperçu avant impression montre les pages au format paysage. Cela semble fonctionner correctement sur IE et Chrome, non testé sur FF.
la source
J'ai essayé de résoudre ce problème une fois, mais toutes mes recherches m'ont mené vers des contrôles / plug-ins ActiveX. Il n'y a aucune astuce que les navigateurs (il y a 3 ans en tout cas) ont permis de modifier les paramètres d'impression (nombre de copies, format du papier).
J'ai mis mes efforts pour avertir soigneusement l'utilisateur qu'il devait sélectionner "paysage" lorsque la boîte de dialogue d'impression du navigateur est apparue. J'ai également créé une page "Aperçu avant impression", qui fonctionnait beaucoup mieux que celle d'IE6! Notre application contenait des tableaux de données très larges dans certains rapports, et l'aperçu avant impression indiquait clairement aux utilisateurs quand le tableau déborderait du bord droit du papier (car IE6 ne pouvait pas non plus supporter l'impression sur 2 feuilles).
Et oui, les gens utilisent encore IE6 même maintenant.
la source
Si vous souhaitez que ce style soit appliqué à une table, créez une balise div avec cette classe de style et ajoutez la balise de table dans cette balise div et fermez la balise div à la fin.
Ce tableau ne s'imprimera qu'en mode paysage et toutes les autres pages seront imprimées en mode portrait uniquement. Mais le problème est que si la taille du tableau est supérieure à la largeur de la page, nous pouvons perdre certaines lignes et parfois des en-têtes sont également manqués. Faites attention.
Bonne journée.
Merci, Naveen Mettapally.
la source
J'ai essayé la réponse de Denis et j'ai rencontré quelques problèmes (les pages portrait ne s'imprimaient pas correctement après avoir consulté les pages paysage), voici donc ma solution:
la source
Cela a également fonctionné pour moi:
la source
Si vous souhaitez voir le paysage sur l'écran avant d'imprimer, ainsi que l'impression, dans votre CSS, vous pouvez définir la largeur à 900 px et la hauteur à 612 px.
OP n'a pas mentionné le format A4. Je suppose que c'est la taille de la lettre dans mes chiffres ci-dessus.
la source
Vous pouvez essayer ce qui suit:
la source