17 int truetoboundingbox;
18 int textbits=4, gfxbits=4;
29 s = va_arg(fmt->args, char*);
30 if(s == nil || s[0] == '\0')
31 return fmtstrcpy(fmt, "");
33 return fmtprint(fmt, "%#q", s);
39 fprint(2, "usage: page [-biRrw] [-p ppi] file...\n");
44 main(int argc, char **argv)
53 /* "temporary" debugging options */
67 textbits = atoi(EARGF(usage()));
68 gfxbits = atoi(EARGF(usage()));
79 ppi = atoi(EARGF(usage()));
82 truetoboundingbox = 1;
98 if(imagemode == 0 && argc == 0){
100 stdinfd = dup(0, -1);
102 open("/dev/cons", OREAD);
106 fmtinstall('a', afmt);
108 fmtinstall('R', Rfmt);
109 fmtinstall('P', Pfmt);
115 if(readn(stdinfd, buf, Ninput) != Ninput){
116 fprint(2, "page: short read reading %s\n", argv[0]);
120 if(!(b = Bopen(argv[0], OREAD))) {
121 fprint(2, "page: cannot open \"%s\"\n", argv[0]);
125 if(Bread(b, buf, Ninput) != Ninput) {
126 fprint(2, "page: short read reading %s\n", argv[0]);
134 doc = initgfx(nil, 0, nil, nil, 0);
135 else if(strncmp((char*)buf, "%PDF-", 5) == 0)
136 doc = initpdf(b, argc, argv, buf, Ninput);
137 else if(strncmp((char*)buf, "\x04%!", 2) == 0)
138 doc = initps(b, argc, argv, buf, Ninput);
139 else if(buf[0] == '\x1B' && strstr((char*)buf, "@PJL"))
140 doc = initps(b, argc, argv, buf, Ninput);
141 else if(strncmp((char*)buf, "%!", 2) == 0)
142 doc = initps(b, argc, argv, buf, Ninput);
143 else if(strcmp((char*)buf, "\xF7\x02\x01\x83\x92\xC0\x1C;") == 0)
144 doc = initdvi(b, argc, argv, buf, Ninput);
145 else if(strncmp((char*)buf, "\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1", 8) == 0)
146 doc = initmsdoc(b, argc, argv, buf, Ninput);
147 else if(strncmp((char*)buf, "x T ", 4) == 0)
148 doc = inittroff(b, argc, argv, buf, Ninput);
151 fprint(2, "page: you can't specify -p with graphic files\n");
152 wexits("-p and graphics");
154 doc = initgfx(b, argc, argv, buf, Ninput);
158 fprint(2, "page: error reading file: %r\n");
159 wexits("document init");
162 if(doc->npage < 1 && !imagemode) {
163 fprint(2, "page: no pages found?\n");
167 if(reverse == -1) /* neither cmdline nor ps reader set it */
170 if(initdraw(0, 0, "page") < 0){
171 fprint(2, "page: initdraw failed: %r\n");
174 truecolor = screen->depth > 8;