Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3005 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [pb XSL] forcer une impression en mode paysage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[pb XSL] forcer une impression en mode paysage

n°521906
ptibonom
Posté le 24-09-2003 à 09:12:38  profilanswer
 

Bonjour,
 
une collègue essaie, donc, de forcer l'impression d'une page en mode paysage. Sur un forum, elle a trouvé ça :
 
<script type="text/css" media="print">
//Impression en disposition paysage au lieu de portrait
div.pagepaysage {
 writing-mode: tb-rl;
 height: 80%;
 margin: 10% 0%;
}
</script>
 
à coller dans le <head> du .xsl en question.
 
visiblement ça ne fonctionne pas. quelqu'un a t'il déjà eu le problème et l'a résolu ?
 
mici ...  :jap:

mood
Publicité
Posté le 24-09-2003 à 09:12:38  profilanswer
 

n°521909
gilou
Modérateur
Modzilla
Posté le 24-09-2003 à 09:21:56  profilanswer
 

Je ne pense pas qu'il y ait quelque chose de generique pour cela (l'aspect portrait/paysage est decidé par le driver de l'imprimante, et les commandes qu'on lui envoie, et je ne crois pas [mais là, un specialiste pourrait confirmer ou infirmes mes propos] que l'on puisse changer ça depuis un script dans la page recue).
Il y a peut etre des solutions propre a Windows, mais je doute qu'il y en aie des multi-OS.
 
Tiens c'est marrant, j'ai trouvé la page web du forum que ta collegue a utilisé ( http://www.devhood.com/messages/me [...] _id=101726 )
Ce qui est bizarre, c'est qu'ils disent que ca marche...
 
A+,


Message édité par gilou le 24-09-2003 à 09:28:16

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°521917
ptibonom
Posté le 24-09-2003 à 09:37:14  profilanswer
 

bin ouais, j'ai retrouvé les pages en question; ce qui me semble assez futé c'est qu'en écrivant de haut en bas (au lieu de gauche à droite), cela outre-passe le paramétrage portrait paysage.

n°521920
gilou
Modérateur
Modzilla
Posté le 24-09-2003 à 09:44:26  profilanswer
 

En fait, si, je viens de tester l'exemple ( http://home.tampabay.rr.com/bmerke [...] -test.html )  et ca marche tres bien:
 
premiere page en portrait, 2e et 3e en paysage et derniere page en portrait a nouveau.
 
Mais ca depend apparement de la presence de page breaks en dur, si je lis bien. Ca peut peut etre s'adapter.
 
Le code de la page d'exemple est le suivant:
 

Code :
  1. <html>
  2. <head>
  3. <title>Print in Landscape</title>
  4. <link rel="shortcut icon" href="favicon.ico">
  5. <style type="text/css">
  6. body {margin: 2% 5%; background-color: linen}
  7. h2,h3,pre {color: Indigo}
  8. div.breakafter {page-break-after:always;
  9. color: silver}
  10. div.breakbefore {page-break-before:always;
  11. color: silver}
  12. </style>
  13. <style type="text/css" media="print">
  14. div.page  {
  15. writing-mode: tb-rl;
  16. height: 80%;
  17. margin: 10% 0%;
  18. }
  19. div.page table {
  20. margin-right: 80pt;
  21. filter: progid:DXImageTransform.Microsoft.BasicImage(Rotation=1);
  22. }
  23. </style>
  24. <meta http-equiv="Keywords"
  25.       content="CSS print landscape; print landscape; printing in landscape; landscape printing; Web page print orientation; landscape orientation; HTML page in landscape; print; writing-mode; print stylesheet; style sheets; CSS tips;" />
  26. </head>
  27. <body>
  28. <h2>Force Specific Content to Print in Landscape Orientation</h2>
  29. <p>This handy trick works in IE5.5/Win and newer. It assumes that the default printer orientation is portrait.</p>
  30. <p>Use the <code>writing-mode</code> property (submitted to W3C). A value meant for East Asian typography, <code>tb-rl</code>, causes IE to write text from top to bottom and right to left. Surround the content you want in landscape with a DIV with a class defined in a print stylesheet. For instance:
  31. </p>
  32. <pre>&lt;style type="text/css" media="print"&gt;
  33. div.page {
  34. writing-mode: tb-rl;
  35. height: 80%;
  36. margin: 10% 0%;
  37. }
  38. &lt;/style&gt;</pre>
  39. <p>Note that now CSS properties have a reverse sense. Height means width and top/bottom margins become left/right margins. </p>
  40. <p>Put a page break *after* a portrait page that is to be followed by a landscape and a page break *before* a portrait page that is preceded by a landscape. Tweak to your needs. <b>Caveat:</b> Data tables resist this hack. To get a table to flip nicely for print it is necessary to add another style rule&#151;which works only in IE6+. Please see the source for details. When once we practice to deceive, my, how the hacks unweave!
  41. </p>
  42. <div class="breakafter">Page break after here.</div>
  43. <div class="page">
  44. <h3>Second Page Should Be Printed in Landscape</h3>
  45. <p>Un peu de texte en exemple ici.</p>
  46. <p>Un peu de texte en exemple ici.</p>
  47. </div>
  48. <div class="page">
  49. <h3>Third Page Should Be in Landscape</h3>
  50. <p>Un peu de texte en exemple ici.</p>
  51. <p>Un peu de texte en exemple ici.</p>
  52. <!-- Use IE Conditional Comments to hide table from IE5.x -->
  53. <!--[if gte IE 6]>
  54. <table border="1" cellspacing="2" cellpadding="2" bordercolor="Purple">
  55. <tr>
  56.     <td>First Cell in first row</td>
  57.     <td>Second Cell</td>
  58.     <td>Third Cell in first row</td>
  59. </tr>
  60. <tr>
  61.     <td>First Cell in row 2</td>
  62.     <td>Second Cell</td>
  63.     <td>Third Cell in row 2</td>
  64. </tr>
  65. </table>
  66. <![endif]-->
  67. </div>
  68. <div class="breakbefore">Page break before here.</div>
  69. <h3>...and the last page should be back to portrait</h3>
  70. <p>Un peu de texte en exemple ici.</p>
  71. </body>
  72. </html>


 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°521953
ptibonom
Posté le 24-09-2003 à 10:44:48  profilanswer
 

effectivement, il manque les break dans sa page xsl, il faut que je regarde où les rajouter ...
 
mici encore

n°526865
DJERO
Yoooup...merde ça marche pas..
Posté le 30-09-2003 à 12:36:17  profilanswer
 

j'ai trouvé ça:
 
http://home.tampabay.rr.com/bmerke [...] -test.html
 
Vois si tu trouves ton Bonheur
 
A+
;)

n°527161
gilou
Modérateur
Modzilla
Posté le 30-09-2003 à 20:35:56  profilanswer
 

Ca t'arrive de lire ce qui est posté dans le topic?
Ton lien a ete donné depuis un bail...
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°527683
ptibonom
Posté le 01-10-2003 à 11:18:16  profilanswer
 

alors, c'est clair, en html pur, ça marche bien. Par contre, dès que j'essaie de reporter le truc sur ma feuille xsl, ça ne marche plus. J'ai bidouillé un peu dans tous les sens mais rien n'y fait.
 
j'ai rajouté des conneries genre le titre et le menu haut avant et après les break pour bien visualiser les différentes mais ça ne marche pas et je me retrouve avec des titres superposés sur une page unique. Bref, je n'y comprend rien.
 
Si qqn a le courage de regarder dans mon code pour me dire là où je merde ...
 
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
 
<!-- default rule -->
<xsl:template match="/"><xsl:apply-templates/></xsl:template>
 
<!-- root rule -->
<xsl:template match="root">
<!-- Build the HTML page -->
<html>  
 
<head>
 <title>IntraCCF - Application ECLAIR</title>
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1" />
 <link rel="stylesheet" type="text/css" href="ccf.css" />
 <script src="scripts/source.js" type="text/javascript"></script>
 <script src="scripts/produit.js" type="text/javascript"></script>
 <script src="scripts/aideproduit.js" type="text/javascript"></script>
 
 <script type="text/css">  
 
 //test hugo
 div.breakafter {page-break-after:always;color: silver}
 div.breakbefore {page-break-before:always; color: silver}
        </script>
 
 
 <script type="text/css" media="print">
 //Impression en disposition paysage au lieu de portrait
 div.page  {  
  writing-mode: tb-rl;
  height: 80%;
  margin: 10% 0%;
  }
 
 div.page table {
  margin-right: 80pt;
  filter: progid:DXImageTransform.Microsoft.BasicImage(Rotation=1);
 }
 </script>

 
</head>    
 
 
 
<script type="text/javascript">
//Impression
 function printpage() {
//  browserVersion = parseInt(navigator.appVersion);
//  if (browserVersion >= 4) window.print();
  window.print();
 }
</script>
 
 
<body bgcolor="#FFFFFF" background="images/fondpage.gif" link="#FF0000" vlink="#FF0000" alink="#FF0000" >
 
<!-- Build the "Titre" layer -->
<div id="titre" style="position:absolute; width:596px; height:71px; z-index:3; left: 169px; top: 60px; visibility: visible">  
  ***********************
</div>
<!-- Build the "Titre" layer -->
<div id="titre" style="position:absolute; width:596px; height:71px; z-index:3; left: 169px; top: 120px; visibility: visible">  
  ********************
</div>
 
<div class="breakafter">Page break after here.</div>
 
<div class="page">
   
<!-- Build the "Menu" layer -->
<div id="menugauche" style="position:absolute; left:0px; top:56px; width:152px; height:471px; z-index:3; visibility: visible">  
  <table width="152" border="0" cellpadding="0" cellspacing="0">
    ******************
  </table>
</div>
 
<!-- Build the "Top" layer -->
<div id="menuhaut" style="position:absolute; left:0px; top:0px; width:765px; height:67px; z-index:2; background-color: #FFFFFF; layer-background-color: #FFFFFF; border: 1px none #000000; visibility: visible" class="boxrecherche">  
  <table border="0" cellpadding="0" cellspacing="0">
    ******************************
  </table>
</div>
             
<!-- Build the "Titre" layer -->
<div id="titre" style="position:absolute; width:596px; height:71px; z-index:3; left: 169px; top: 60px; visibility: visible">  
  *********************************
</div>
 
 
<xsl:choose>
 <xsl:when test="produit">
  <!-- Build the "PRODUIT ALLER" layer -->
  <xsl:apply-templates select="produit"/>
 </xsl:when>
 <xsl:when test="produitretour">
  <!-- Build the "PRODUIT RETOUR" layer -->
  <xsl:apply-templates select="produitretour"/>
 </xsl:when>
 <xsl:otherwise>
  <div id="noproduct" style="position:absolute; width:482px; height:61px; z-index:3; left: 189px; top: 162px" class="alphabet">
   <xsl:if test="listevide">
    <font face="Arial, Helvetica, sans-serif">PAS DE PRODUIT trouvé pour ce critère de recherche...</font>
    <br /><br />
   </xsl:if>
   <font face="Arial, Helvetica, sans-serif">Veuillez saisir ci-dessous le critère de recherche...</font>
  </div>
 </xsl:otherwise>
</xsl:choose>    
 
 
 
<!-- Build the "Recherche" layer -->
<xsl:apply-templates select="recherche"/>
 
<div id="menufluxaller" style="position:absolute; left:152px; top:96px; height:96px; z-index:4; visibility: hidden; width: 200px" onMouseOver="MM_showHideLayers('menufluxaller','','show')" onMouseOut="MM_showHideLayers('menufluxaller','','hide')">
  <table bgcolor="#EBEBEB" border="0" cellpadding="2" cellspacing="0" class="tab">
    ***********************************
  </table>
</div>        
 
 
<div id="menutfluxretour" style="position:absolute; left:152px; top:133px; height:100px; z-index:4; visibility: hidden; width: 200px" onMouseOver="MM_showHideLayers('menutfluxretour','','show')" onMouseOut="MM_showHideLayers('menutfluxretour','','hide')" class="newstitres">
  <table border="0" bgcolor="#EBEBEB" cellpadding="2" cellspacing="0" class="tab">
  ************************************
  </table>
</div>
 
<div id="menugestioncontrat" style="position:absolute; left:152px; top:170px; height:100px; z-index:4; visibility: hidden; width: 200px" onMouseOver="MM_showHideLayers('menugestioncontrat','','show')" onMouseOut="MM_showHideLayers('menugestioncontrat','','hide')">
  <table bgcolor="#EBEBEB" border="0" cellpadding="2" cellspacing="0" class="tab">
 ********************************
  </table>
</div>
 
<div id="menusuiviconnexions" style="position:absolute; left:152px; top:207px; height:46px; z-index:4; width: 200px; visibility: hidden" onMouseOver="MM_showHideLayers('menusuiviconnexions','','show')" onMouseOut="MM_showHideLayers('menusuiviconnexions','','hide')">  
  <table bgcolor="#EBEBEB" border="0" cellpadding="2" cellspacing="0" class="tab">
    ****************************
  </table>
</div>
<div id="menuadministration" style="position:absolute; left:152px; top:244px; height:61px; z-index:4; width: 200px; visibility: hidden" onMouseOver="MM_showHideLayers('menuadministration','','show')" onMouseOut="MM_showHideLayers('menuadministration','','hide')">  
  <table bgcolor="#EBEBEB" border="0" cellpadding="2" cellspacing="0" class="tab">
    **********************************
  </table>
</div>  
 
</div>
 
<div class="breakbefore"> Page break before here.</div>
<!-- Build the "Titre" layer -->
<div id="titre" style="position:absolute; width:596px; height:71px; z-index:3; left: 169px; top: 60px; visibility: visible">  
  ****************************
</div>
<!-- Build the "Titre" layer -->
<div id="titre" style="position:absolute; width:596px; height:71px; z-index:3; left: 169px; top: 120px; visibility: visible">  
  *****************************
</div>
 
</body>    
 
 
 
<script type="text/javascript">
opener=self;
document.rechercheform.idf.focus();
<xsl:if test="message">
 <xsl:apply-templates select="message" />  
</xsl:if>
</script>
 
</html>      
 
</xsl:template>
 
 
<xsl:template match="produit">
 <div id="product" style="position:absolute; width:596px; z-index:2; left: 169px; top: 133px; overflow: visible; height: 301px; visibility: visible" class="page">  
  <table width="596" bordercolor="#D2D2D2" bgcolor="#D2D2D2" cellpadding="4" cellspacing="0" border="5"  align="center">
   ********************************
  </table>
  <!-- Impression -->  
  <table width="596" cellpadding="0" cellspacing="0" height="32" align="center">
   <tr bordercolor="#FFFFFF">  
    <td bgcolor="#FFFFFF" align="right"><a href="javascript:void(0)" onClick="printpage()"><img src="images/illustprint.gif" width="47" height="36" border="0" alt="Imprimer" /></a></td>
   </tr>
  </table>
 </div>
</xsl:template>
 
<xsl:template match="produitretour">
 <div id="product" style="position:absolute; width:596px; z-index:2; left: 169px; top: 133px; overflow: visible; height: 301px; visibility: visible" class="page">  
  <table width="596" bordercolor="#D2D2D2" bgcolor="#D2D2D2" cellpadding="4" cellspacing="0" border="5"  align="center">
   ************************************
  </table>
  <!-- Impression -->  
  <table width="596" cellpadding="0" cellspacing="0" height="32" align="center">
   <tr bordercolor="#FFFFFF">  
    <td bgcolor="#FFFFFF" align="right"><a href="javascript:void(0)" onClick="printpage()"><img src="images/illustprint.gif" width="47" height="36" border="0" alt="Imprimer" /></a></td>
   </tr>
  </table>
 </div>
</xsl:template>
 
<xsl:template match="recherche">
<!-- Build the "Recherche" layer -->  
<!--form name="rechercheform" action="ConsulterProduit" method="post" id="rechercheform" onSubmit="MM_validateForm('rechercheform'); return document.MM_returnValue;"-->
<!--form name="rechercheform" action="adminprodmqt3b.xml" method="post" id="rechercheform"-->
<form name="rechercheform" method="post" id="rechercheform">
 ******************************************
</form>
</xsl:template>
 
<xsl:template match="message" >
 <![CDATA[alert("]]><xsl:value-of select="libmessage" /><![CDATA[" );]]>
</xsl:template>
 
</xsl:stylesheet>


Message édité par ptibonom le 01-10-2003 à 11:21:55

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  [pb XSL] forcer une impression en mode paysage

 

Sujets relatifs
formulaires : forcer la saisi! ![Web] impréssion multipages
[CSS ] :: Mise en page pour l'impression[java]resolution impression
modeImpression d'une page web
cobol-mode pour emacs[ VB.NET ] [ Datagrid ] - Impression "wysiwyg"
Tracer une ligne entre deux point en mode consoleForcer la hauteur de cellules avec tableaux html
Plus de sujets relatifs à : [pb XSL] forcer une impression en mode paysage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR