ref: c962ff8e70b5fb31c6f4ee3886eb20af65e21e18
dir: /main.c/
#include <u.h>
#include <libc.h>
#include <thread.h>
#include <bio.h>
#include <flate.h>
#include "pdf.h"
int mainstacksize = 32768;
static void
usage(void)
{
fprint(2, "usage: %s FILE\n", argv0);
threadexitsall("usage");
}
void
threadmain(int argc, char **argv)
{
Pdf *pdf;
Biobuf *b;
Object *v;
Stream *s;
int i, n;
quotefmtinstall();
inflateinit();
ARGBEGIN{
default:
usage();
}ARGEND
if(argc < 1)
usage();
if((b = Bopen(argv[0], OREAD)) == nil)
sysfatal("%r");
if((pdf = pdfopen(b)) == nil)
sysfatal("%s: %r", argv[0]);
for(v = pdf->root, i = 1; i < argc; i++){
if(argv[i][0] == '['){
n = atoi(argv[i]+1);
v = arrayget(v, n);
}else if((argv[i][0] == '@') && argv[i][1] == 0 && v->type == Ostream){
if((s = Sopen(v)) == nil)
sysfatal("%r");
if(write(1, s->buf.b, s->buf.sz) != s->buf.sz)
sysfatal("write failed");
Sclose(s);
v = nil;
break;
}else{
v = dictget(v, argv[i]);
}
}
if(v != nil)
print("%O\n", v);
/*
if((v = dictget(pdf->info, "Creator")) != nil)
fprint(2, "creator: %s\n", v->str);
if((v = dictget(pdf->info, "Producer")) != nil)
fprint(2, "producer: %s\n", v->str);
*/
pdfclose(pdf);
threadexitsall(nil);
}