* http://localhost/cgi-bin/barcode?string
* where string is the code to be converted
*
- * $Id: BarCode.c,v 1.1 2002/06/18 22:11:06 piccardi Exp $
+ * $Id: BarCode.c,v 1.2 2002/06/21 22:24:10 piccardi Exp $
*
****************************************************************/
/*
/*
* Variables definition
*/
- char buffer[8192];
pid_t pid;
- size_t n;
int retval;
int pipein[2];
int pipeout[2];
- char size[]="-pA9";
- char psize[]="-sPAPERSIZE=a9";
char content[]="Content-type: image/jpeg\n\n";
+ char size[]="-pA9";
/*
* Begin
*/
if (pid == 0) {
/*
* Child exec barcode program, that take input (string to encode)
- * from pipein, remapped to stdin, and write the output (a ppm
+ * from pipein, remapped to stdin, and write the output (a PS
* image) to stdout, remapped to pipeout
*/
close(pipein[1]); /* close output side of input pipe */
/*
* Parent write string to pipe input and close it,
* then wait child execution and results form pipeout,
- * then fork to convert ppm to gif using ppmtogif
+ * then fork to convert PS to JPEG using gs
*/
close(pipein[0]); /* close input side of input pipe */
- n=write(pipein[1], argv[1], strlen(argv[1]));
+ write(pipein[1], argv[1], strlen(argv[1]));
close(pipein[1]);
waitpid(pid, NULL, 0);
/*
- * refork to use ppmtogif
+ * refork to use gs
*/
pid = fork();
if (pid == -1) {
exit(0);
}
/*
- * second child, convert ppm to gif
+ * second child, convert PS to JPEG
*/
if (pid == 0) {
/* send mime type */
close(pipeout[1]);
dup2(pipeout[0], STDIN_FILENO);
write(STDOUT_FILENO, content, strlen(content));
- n=read(pipeout[0], buffer, sizeof(buffer));
- printf("Letti %n di %n, %s\n", n, sizeof(buffer), buffer);
- exit(0);
execlp("gs", "gs", "-q", "-sDEVICE=jpeg", "-sOutputFile=-", "-", NULL);
}
/*