#!/usr/bin/perl
use CGI qw(:standard);use strict;
print header(-type => 'text/html'),"\n<!-- code by nick fankhauser -->
<html><head><title>Katalog Layouter</title></head><body><center>\n";
my $datei=param("datei");
if ($datei) {prozess($datei)} else {&upform}
print "</center></body></html>\n";

sub prozess {
	my $datei=shift;my $ddir="katdat";
	my $id=1;while (-r "$ddir/job$id.txt") {$id++};
	my $ofn="job$id.txt";
	my $sz=param("start");
	open(O,">$ddir/$ofn") or die;
	while(read $datei,my $data,1024) {print O $data}
	close O;my $bs=$ofn;
	my $fn="$ddir/$ofn";$ofn="$fn.tex";my $cnt=1;
	open(F,$fn) or die;open(O,">$ofn") or die;
	print O '\documentclass[10pt,a4paper,twocolumn,oneside]{scrbook}
	\usepackage[latin1]{inputenc}
	\usepackage{german}
	\usepackage{times}
	\usepackage{a4wide}
	\usepackage{float}
	\usepackage[left=1cm,right=1cm,top=2cm,bottom=2cm,footskip=5mm]{geometry}
	\setlength{\columnsep}{20pt}
	\setlength{\intextsep}{1pt}
	\begin{document}
	\setcounter{page}{',$sz,"}\n\n";
	# 1: Autor
	# 2: Biblio
	# 3: Buchnummer
	# 4: Preis
	# 5: Anmerkungen
	my $bc=chr(11);my $hc1=chr(0xB0);
	while (<F>) {
		s/\&/\\\&/g;s/\$/\\\$/g;s/%/\\%/g;s/\#/\\\#/g;s/_/\\_/g;
		s/\s\"/ \\glqq /g;s/\"\s/\\grqq \\ /g;s/\"/\\grqq /g;
		s/$bc//g;s/$hc1//g;s/\[//g;s/\]//g;
	#	if (/>(.+?)>;>(.+?)>;(\d+);>(.+?)>;>(.*?)>/) {
		if (/>(.+?)>;>(.+?)>;(\d+);(\d+);>(.*?)>/) {
			print O "\\begin{table}[H]
			\\textbf{$cnt $1}\\\\\n$2
			\\textless$3\\textgreater
			\\vspace{-2mm}
			\\begin{flushright} \\textbf{sFr. $4.00} \\end{flushright} \n";
			if ($5) {
				print O "\\vspace{-2mm}
				\\small $5 \\normalsize \\\\ \\vspace{-1mm}\n";
			}
			print O "\\end{table}\n\n";$cnt++;
		}	
	}
	$cnt--;print O "\\end{document}\n";close O;close F;
	print "<p>$cnt B&uuml;cher verarbeitet. Startseitenzahl: $sz</p>\n";
	if ($cnt) {
		system("cd katdat && pdflatex $bs >/dev/null");
		my $c="cp $fn.pdf /var/www/tmp";system($c);
		print "<h2><a href=/tmp/$bs.pdf>PDF-Datei</a></h2>\n";
	}
}

sub upform {
	print "<p><h3>Bitte nur exportierte Text-Dateien in dieser Form raufladen:<br>
	\"Autor\";\"Bibliographie\";Nummer;\"Preis\";\"Anmerkung\"</h3>
	<form method=post name=fo1 enctype=multipart/form-data>
	Datei ausw&auml;hlen: <input type=file size=50 name=datei><p>
	Start-Seitenzahl: <select name=start>\n";
	for (my $i=1;$i<10;$i++) {print "<option>$i</option>\n"}
	print "</select><p><input type=submit value=OK></form><p>Nick Fankhauser, Mai 2005</p>\n";
}