sahchas

Fanzinator

Oct 6th, 2016
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5 3.76 KB | None | 0 0
  1. <html>
  2. <head>
  3.  
  4. <style>
  5.  
  6. body{
  7.     background-color: #777;
  8. }
  9. .frmPaginas{
  10.     background-color: #AAA;
  11.     padding:15px;
  12.     width:45%;
  13.     font-family: helvetica;
  14. }
  15. .frmPaginas .btnAceptar{
  16.     width: 30%;
  17.     transform: translate(0,150%);
  18. }
  19.  
  20. </style>
  21.  
  22. <script type="text/javascript">
  23.  
  24.     var imgs;
  25.     var files;
  26.     var cont;
  27.  
  28.     function seleccionarTamanio(s){
  29.        
  30.         var option = s.options[s.selectedIndex];
  31.  
  32.         document.forms[0].ancho.value=option.getAttribute("ancho");
  33.         document.forms[0].alto.value=option.getAttribute("alto");
  34.     }
  35.  
  36.     function hacer(){
  37.  
  38.         cont = 0;
  39.  
  40.         files = document.getElementById("paginas").files;
  41.        
  42.         imgs  = [];
  43.  
  44.         cargarImagenes(files);
  45.  
  46.     }
  47.  
  48.     function cargarImagenes(files){
  49.  
  50.         for(var i = 0; i < files.length; i++)
  51.             imgs.push(document.createElement("img"));
  52.  
  53.         cargarImagen(0);
  54.  
  55.     }
  56.  
  57.     function cargarImagen(i){
  58.  
  59.         var reader  = new FileReader();
  60.  
  61.         reader.ordenImg = i;
  62.  
  63.         reader.onloadend = function () {
  64.  
  65.            imgs[reader.ordenImg].src = reader.result;
  66.            imgs[reader.ordenImg].setAttribute("class","imgCarilla");
  67.  
  68.            if(reader.ordenImg == imgs.length - 1){
  69.                 terminarHacer();
  70.            }
  71.            else{
  72.                 cargarImagen(reader.ordenImg + 1)
  73.            }
  74.  
  75.         }
  76.        
  77.         reader.readAsDataURL(files[i]); //reads the data as a URL
  78.     }
  79.  
  80.     function terminarHacer(){
  81.  
  82.         crearDocumento(document,imgs);
  83.  
  84.         imprimir();
  85.     }
  86.  
  87.     function crearDocumento(doc,imgs){
  88.  
  89.         if(imgs.length % 2 != 0) imgs.push(doc.createElement("img"));
  90.  
  91.         var len = imgs.length -1;
  92.         var swap = false;
  93.  
  94.         for(var i = 0; i < imgs.length/2; i++){
  95.  
  96.             var divPag = doc.createElement("div");
  97.             var divA = doc.createElement("div");
  98.             var divB = doc.createElement("div");
  99.  
  100.             divA.setAttribute("class","divPagina");
  101.             divB.setAttribute("class","divPagina");
  102.  
  103.             divPag.setAttribute("class","paginaImpresion");
  104.  
  105.             if(swap){
  106.                 divA.appendChild(imgs[i]);
  107.                 divB.appendChild(imgs[len - i]);
  108.             }else{
  109.                 divA.appendChild(imgs[len - i]);
  110.                 divB.appendChild(imgs[i]);
  111.             }
  112.  
  113.             swap = !swap;
  114.  
  115.             divPag.appendChild(divA);
  116.             divPag.appendChild(divB);
  117.             doc.body.appendChild(divPag);
  118.  
  119.         }
  120.  
  121.         var form = document.forms[0];
  122.  
  123.         var css = "@page{ height: " + form.alto.value + " ;width: " + form.ancho.value + " ; margin: " + form.margen.value + ";}\n";
  124.         css += "body{background-color:black; margin:0}\n";
  125.         css += ".paginaImpresion{page-break-after: always;}\n";
  126.         css += ".divPagina{height:100%;width:50%;display:inline;}\n";
  127.         css += ".imgCarilla{width:50%;}"
  128.  
  129.         var style = doc.createElement("style");
  130.  
  131.         style.type = 'text/css';
  132.  
  133.         if (style.styleSheet){
  134.             style.styleSheet.cssText = css;
  135.         } else {
  136.             style.appendChild(document.createTextNode(css));
  137.         }
  138.  
  139.         doc.head.appendChild(style);
  140.  
  141.     }
  142.  
  143.     function imprimir(){
  144.         document.forms[0].style.display = "none";
  145.         window.print();
  146.         document.forms[0].style.display = "block";
  147.     }
  148.  
  149.     function inicio(){
  150.  
  151.         seleccionarTamanio(document.getElementById("selectFormato"));
  152.  
  153.     }
  154.  
  155. </script>
  156. </head>
  157. <body onload="inicio()">
  158. <form class="frmPaginas">
  159.     <table style="display: inline;width:60%">
  160.         <tr><td>Tama&ntilde;o de pagina:</td><td><select id="selectFormato" onchange="seleccionarTamanio(this)">
  161.             <option ancho="297" alto="210">A4</option>
  162.             <option ancho="240" alto="297">A3</option>
  163.         </select></td></tr>
  164.         <tr><td>Ancho de p&aacute;gina:</td><td><input name="ancho" /></td></tr>
  165.         <tr><td>Alto de p&aacute;gina:</td><td><input name="alto" /></td></tr>
  166.         <tr><td>Margen:</td><td> <input name="margen" value="5mm"/></td></tr>
  167.         <tr><td>Seleccionar imagenes:</td><td> <input id="paginas" name="paginas" type="file" multiple/></td></tr>
  168.     </table>
  169.     <button type="button" onclick="hacer()">Aceptar</button>
  170.     <button type="button" onclick="imprimir()">Imprimir</button>
  171. </form>
  172. </body>
  173. </html>
Advertisement
Add Comment
Please, Sign In to add comment