#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

main()
{
    FILE *f,*g;
    char buf[500],name[500],buf1[500];
    int Ev,Ho,Old,lEv,lHo,sp;
    struct stat st;

    lEv = lHo = -1;
    f = popen("ls -1 /amnt/cd/kati/*.PS","r");
    while (fgets(name,500,f))
    {
	while ((strlen(name)>0) && (name[strlen(name)-1] <= ' '))
	    name[strlen(name)-1]=0;
	sprintf(buf1,"echo quit | gs -q -dNOPAUSE -sDEVICE=bmpmono -r110x110 -sOutputFile=/tmp/pg%%d.bmp %s",name);
	system(buf1);
	sprintf(buf1,"grep '%%%%Page: ' %s",name);
	g = popen(buf1,"r");
	fgets(buf,500,g);
	pclose(g);
	sp = atoi(buf+8);
	*strrchr(name,'.') = 0;
	Ho = atoi(name+strlen(name)-2);
	name[strlen(name)-2] = 0;
	Ev = 1900+atoi(name+strlen(name)-2);
	if (lEv != Ev)
	{
	    sprintf(buf1,"mkdir /home/makay/komal/%04d 2>/dev/null",Ev);
	    system(buf1);
	    lHo= -1;
	}
	if (lHo != Ho)
	{
	    sprintf(buf1,"mkdir /home/makay/komal/%04d/%02d 2>/dev/null",Ev,Ho);
	    system(buf1);
	}
	for (Old=1;1;Old++)
	{
	    sprintf(buf1,"/tmp/pg%d.bmp",Old);
	    if (stat(buf1,&st))
		break;
	    sprintf(buf1,"convert -crop 600x900+96+120 -monochrome /tmp/pg%d.bmp /home/makay/komal/%04d/%02d/%03d.png",Old,Ev,Ho,sp+Old-1);
	    system(buf1);
	}
	system("rm -f /tmp/pg*.bmp");
    }
}

