#!/usr/bin/perl

use CGI; $q=new CGI;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);

my $n=$q->param('n');
my $s=$q->param('s');
my $f=$q->upload('pdf');
my $m=$n/2;
my $i=0;
my $j=0; $j=$n/4 if($s=~/^4/); $j++ if($j&1);
my $err='';
my $out='';

$err="Die Seitenanzahl ($n) mu&szlig; ein Vielfaches von 2 sein!\n" if($s==2 and $n&1);
$err="Die Seitenanzahl ($n) mu&szlig; ein Vielfaches von 4 sein!\n" if($s==4 and $n&3);

while($n && $s)
{
 if($s==2) { $out.=sprintf("%d,%d,%d,%d,",            $n-$i,$i+1,           $i+2,$n-$i-1             ); }
 if($s==4) { $out.=sprintf("%d,%d,%d,%d,%d,%d,%d,%d,",$n-$i,$i+1,$n-$j,$j+1,$i+2,$n-$i-1,$j+2,$n-$j-1); }

 $i+=2; $j+=2; last if($j>=$m);
}

 if($s==4 and 2*$i<$m) { $out.=sprintf("%d,%d,%d,%d,%d,%d,%d,%d,",$n-$i,$i+1,1,1,$i+2,$n-$i-1,1,1); } 

 $out=~s/,$//;

my $selectet2=($s==2)? 'selected':'';
my $selectet4=($s==4)? 'selected':'';

if($f)
{
 open TMP,'>',"/srv/www/html/pdf.pdf";
  print TMP join '',<$f>;
 close TMP; 

 qx(cd /srv/www/html/;pdfjoin --outfile pdf-joined.pdf pdf.pdf 8p-empty.pdf);
}

my $textarea='textarea';

print $q->header(-type=>"text/html").qq{
<html>
 <body>
  <h4>Berechnung der Seitenfolge von N Seiten, die mit 2 oder 4 Seiten/Blatt als Brosch&uuml;re gedruckt werden sollen ...</h4>
  <h3><font color=red>$err</font></h3>
  <form method="post" action="booklet.cgi">
   <input type="text" name="n" value="$n" size="4" maxlength="4" onChange='this.form.submit()'> Seiten werden gedruckt als
   <select name="s" onChange='this.form.submit()'>
    <option value="2" $selectet2>2 Seiten / Blatt</option>
    <option value="4" $selectet4>4 Seiten / Blatt</option>
   </select>
  </form>
  <p>Ergebnis kopieren (<i>Strg+C</i>) und als Druck-"Bereich" einfügen (<i>Strg+V</i>):<br>
  <form><$textarea cols="100" rows="20 name="out" onClick="this.form.elements[0].select();">$out</$textarea></form></p>
  <hr>
  <p>Testseiten: nummerierte Seiten 1-64 in <a href="/1-64P.pdf">Hochformat</a> und <a href="/1-64L.pdf">Querformat</a></p>
  <hr>
  <p>}.(!$f
  ?qq{PDF-Datei um <a href="/8p-empty.pdf">8 Leerseiten</a> erweitern: 
      <form method="post" action="booklet.cgi" enctype="multipart/form-data">
       <input type="file" name="pdf" size="60">
       <button type=submit>hochladen</button>
      </form>}
  :qq{ ... und PDF-Datei von <a href="/pdf-joined.pdf">hier</a> abholen.
      <form method="post" action="booklet.cgi">
       <button type=submit>löschen</button>
      </form>})
  .qq{</p>
 </body>
</html>};




