forcer une impression en mode paysage [pb XSL] - XML/XSL - Programmation
Marsh Posté le 24-09-2003 à 09:21:56
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+,
Marsh Posté le 24-09-2003 à 09:37:14
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.
Marsh Posté le 24-09-2003 à 09:44:26
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 :
|
A+,
Marsh Posté le 24-09-2003 à 10:44:48
effectivement, il manque les break dans sa page xsl, il faut que je regarde où les rajouter ...
mici encore
Marsh Posté le 30-09-2003 à 12:36:17
j'ai trouvé ça:
http://home.tampabay.rr.com/bmerke [...] -test.html
Vois si tu trouves ton Bonheur
A+
Marsh Posté le 30-09-2003 à 20:35:56
Ca t'arrive de lire ce qui est posté dans le topic?
Ton lien a ete donné depuis un bail...
A+,
Marsh Posté le 01-10-2003 à 11:18:16
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>
Marsh Posté le 24-09-2003 à 09:12:38
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 ...