w32tex
About: TeX Live provides a comprehensive TeX system including all the major TeX-related programs, macro packages, and fonts that are free software. Windows sources.
  Fossies Dox: w32tex-src.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

dvipdfm.c
Go to the documentation of this file.
1 /* $Header$
2 
3  This is dvipdfm, a DVI to PDF translator.
4  Copyright (C) 1998, 1999, 2007, 2008 by Mark A. Wicks
5 
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program; if not, write to the Free Software
18  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 
20  The author may be contacted via the e-mail address
21 
22  mwicks@kettering.edu
23 */
24 
25 
26 #include <stdio.h>
27 #include <string.h>
28 #include <limits.h>
29 #include <ctype.h>
30 #include "config.h"
31 #include "system.h"
32 #include "mem.h"
33 #include "mfileio.h"
34 #include "dvi.h"
35 #include "pdfdoc.h"
36 #include "pdfdev.h"
37 #include "encodings.h"
38 #include "type1.h"
39 #include "type0.h"
40 #include "ttf.h"
41 #include "colorsp.h"
42 #include "pdfspecial.h"
43 #include "pdfparse.h"
44 #include "vf.h"
45 #include "pkfont.h"
46 #include "thumbnail.h"
47 #include "psimage.h"
48 #include "tfm.h"
49 
50 #ifdef WIN32
51 extern void expand_outlines(void);
52 #endif
53 
54 struct rect
55 {
56  double width;
57  double height;
58 };
59 typedef struct rect rect;
60 
61 struct
62 {
63  char *s;
64  struct rect data;
65 } paper_sizes[] = {
66  {"letter" , { 612.0, 792.0}},
67  {"legal" , { 612.0, 1008.0}},
68  {"ledger" , { 1224.0, 792.0}},
69  {"tabloid" , { 792.0, 1224.0}},
70  {"a6" , { 297.64, 420.91}},
71  {"a5" , { 420.91, 595.27}},
72  {"a4" , { 595.27, 841.82}},
73  {"a3" , { 841.82, 1190.16}},
74  {"b6" , { 364.25, 515.91}},
75  {"b5" , { 515.91, 728.50}},
76  {"b4" , { 728.50, 1031.81}},
77  {"b3" , { 1031.81, 1457.00}},
78  {"b5var" , { 515.91, 651.97}}};
79 
80 static rect get_paper_size (char *string)
81 {
82  int i;
83  for (i=0; i<sizeof(paper_sizes)/sizeof(paper_sizes[0]); i++) {
84  if (!strcmp (string, paper_sizes[i].s))
85  break;
86  }
87  if (i == sizeof(paper_sizes)/sizeof(paper_sizes[0]))
88  ERROR ("Paper size is invalid");
89  return paper_sizes[i].data;
90 }
91 
92 
94 static void set_default_pdf_filename(void)
95 {
96  const char *dvi_base;
97 #ifdef HAVE_XBASENAME
98  dvi_base = xbasename (dvi_filename);
99 #else
100  dvi_base = basename (dvi_filename);
101 #endif
102  if (strlen (dvi_base) < 5 || strncmp (".dvi", dvi_base+strlen(dvi_base)-4, 4))
103  {
104  pdf_filename = NEW (strlen(dvi_base)+5, char);
105  strcpy (pdf_filename, dvi_base);
106  strcat (pdf_filename, ".pdf");
107  } else
108  {
109  pdf_filename = NEW (strlen(dvi_base)+1, char);
110  strncpy (pdf_filename, dvi_base, strlen(dvi_base)-4);
111  strcpy (pdf_filename+strlen(dvi_base)-4, ".pdf");
112  }
113 }
114 static void usage (void)
115 {
116  fprintf (stdout, "\n%s, version %s, Copyright (C) 1998, 1999, 2009 by Mark A. Wicks\n", PACKAGE, VERSION);
117  fprintf (stdout, "Japanese extension (S. Hirata, 2001).\n");
118  fprintf (stdout, "New MetaPost support (TeXLive, 2008).\n");
119  fprintf (stdout, "dvipdfm comes with ABSOLUTELY NO WARRANTY.\n");
120  fprintf (stdout, "This is free software, and you are welcome to redistribute it\n");
121  fprintf (stdout, "under certain conditions. Details are distributed with the software.\n");
122  fprintf (stdout, "\nUsage: dvipdfmo [options] dvifile\n");
123  fprintf (stdout, "-c \tIgnore color specials (for B&W printing)\n");
124  fprintf (stdout, "-f filename\tSet font map file name [t1fonts.map]\n");
125  fprintf (stdout, "-o filename\tSet output file name [dvifile.pdf]\n");
126  fprintf (stdout, "-l \t\tLandscape mode\n");
127  fprintf (stdout, "-m number\tSet additional magnification [1.0]\n");
128  fprintf (stdout, "-p papersize\tSet papersize (letter, legal, ledger, tabloid,\n");
129  fprintf (stdout, " \ta6, a5, a4, a3, b6, b5, b4, b3, or b5var) [a4]\n");
130  fprintf (stdout, "-r resolution\tSet resolution (in DPI) for raster fonts [600]\n");
131  fprintf (stdout, "-s pages\tSelect page ranges (-)\n");
132  fprintf (stdout, "-t \tEmbed thumbnail images\n");
133  fprintf (stdout, "-d \tRemove thumbnail images when finished\n");
134  fprintf (stdout, "-x dimension\tSet horizontal offset [1.0in]\n");
135  fprintf (stdout, "-y dimension\tSet vertical offset [1.0in]\n");
136  fprintf (stdout, "-e \tDisable partial font embedding [default is enabled])\n");
137  fprintf (stdout, "-z number\tSet compression level (0-9) [default is 9])\n");
138  fprintf (stdout, "-v \tBe verbose\n");
139  fprintf (stdout, "-vv \tBe more verbose\n");
140  fprintf (stdout, "-V version \tPDF version (2,3,4 or 5)\n");
141 #ifdef WIN32
142  fprintf (stdout, "-E \tExpand outlines\n");
143 #endif
144  fprintf (stdout, "\nAll dimensions entered on the command line are \"true\" TeX dimensions.\n");
145  fprintf (stdout, "Argument of \"-s\" lists physical page ranges separated by commas, e.g., \n\"-s 1-3,5-6\"\n\n");
146  exit(1);
147 }
148 
149 #ifdef WIN32
150 static double paper_width = 595.27, paper_height = 841.82;
151 #else
152 static double paper_width = 612.0, paper_height = 792.0;
153 #endif
154 static char landscape_mode = 0;
155 static char ignore_colors = 0;
156 static double mag = 1.0, x_offset=72.0, y_offset=72.0;
157 static int font_dpi = 600;
158 static int really_quiet = 0;
159 
160 struct page_range
161 {
162  unsigned int first, last;
165 
167 {
169 }
170 
171 #define pop_arg() {argv += 1; argc -= 1;}
172 static void do_args (int argc, char *argv[])
173 {
174  char *flag;
175  while (argc > 0 && *argv[0] == '-') {
176  for (flag=argv[0]+1; *flag != 0; flag++) {
177  switch (*flag) {
178  case 'D':
179  if (argc < 2) {
180  fprintf (stderr, "PS->PDF conversion command line template missing\n\n");
181  usage();
182  }
184  pop_arg();
185  break;
186  case 'r':
187  if (argc < 2) {
188  fprintf (stderr, "\nResolution specification missing a number\n\n");
189  usage();
190  }
191  {
192  char *result, *end, *start = argv[1];
193  end = start + strlen(argv[1]);
195  if (result != NULL && start == end) {
196  font_dpi = (int) atof (result);
197  }
198  else {
199  fprintf (stderr, "\nError in number following resolution specification\n\n");
200  usage();
201  }
202  if (result != NULL) {
203  RELEASE (result);
204  }
205  }
206  pop_arg();
207  break;
208  case 'm':
209  if (argc < 2) {
210  fprintf (stderr, "\nMagnification specification missing a number\n\n");
211  usage();
212  }
213  {
214  char *result, *end, *start = argv[1];
215  end = start + strlen(argv[1]);
217  if (result != NULL && start == end) {
218  mag = atof (result);
219  }
220  else {
221  fprintf (stderr, "\nError in number following magnification specification\n\n");
222  usage();
223  }
224  if (result != NULL) {
225  RELEASE (result);
226  }
227  }
228  pop_arg();
229  break;
230  case 'g':
231  if (argc < 2) {
232  fprintf (stderr, "\nAnnotation \"grow\" specification missing a number\n\n");
233  usage();
234  }
235  {
236  char *result, *end, *start = argv[1];
237  end = start + strlen(argv[1]);
239  if (result != NULL && start == end) {
241  }
242  else {
243  fprintf (stderr, "\nError in number following magnification specification\n\n");
244  usage();
245  }
246  if (result != NULL) {
247  RELEASE (result);
248  }
249  }
250  pop_arg();
251  break;
252  case 'x':
253  if (argc < 2) {
254  fprintf (stderr, "\nX Offset specification missing a number\n\n");
255  usage();
256  }
257  {
258  char *result, *end, *start = argv[1];
259  double unit;
260  end = start + strlen(argv[1]);
262  if (result != NULL) {
263  x_offset = atof (result);
264  }
265  else {
266  fprintf (stderr, "\nError in number following xoffset specification\n\n");
267  usage();
268  }
269  if (result != NULL) {
270  RELEASE (result);
271  }
273  if (unit > 0.0) {
274  x_offset *= unit;
275  }
276  else {
277  fprintf (stderr, "\nError in dimension specification following xoffset\n\n");
278  usage();
279  }
280  }
281  pop_arg();
282  break;
283  case 'y':
284  if (argc < 2) {
285  fprintf (stderr, "\nY offset specification missing a number\n\n");
286  usage();
287  }
288  {
289  char *result, *end, *start = argv[1];
290  double unit;
291  end = start + strlen(argv[1]);
293  if (result != NULL) {
294  y_offset = atof (result);
295  }
296  else {
297  fprintf (stderr, "\nError in number following yoffset specification\n\n");
298  usage();
299  }
300  if (result != NULL) {
301  RELEASE (result);
302  }
304  if (unit > 0.0) {
305  y_offset *= unit;
306  }
307  else {
308  fprintf (stderr, "\nError in dimension specification following yoffset\n\n");
309  usage();
310  }
311  }
312  pop_arg();
313  break;
314  case 'o':
315  if (argc < 2)
316  ERROR ("Missing output file name");
317  pdf_filename = NEW (strlen(argv[1])+1,char);
318  strcpy (pdf_filename, argv[1]);
319  pop_arg();
320  break;
321  case 's':
322  {
323  char *result, *end, *start = argv[1];
324  if (argc < 2)
325  ERROR ("Missing page selection specification");
326  end = start + strlen (argv[1]);
327  while (start < end) {
328  /* Enlarge page range table if necessary */
330  max_page_ranges += 4;
332  struct page_range);
333  }
334  skip_white (&start, end);
336  if ((result = parse_unsigned (&start, end))) {
340  RELEASE(result);
341  }
342  skip_white (&start, end);
343  if (*start == '-') {
344  start += 1;
346  skip_white (&start, end);
347  if (start < end &&
348  ((result = parse_unsigned (&start, end)))) {
350  RELEASE (result);
351  }
352  }
353  num_page_ranges += 1;
354  skip_white (&start, end);
355  if (start < end && *start == ',') {
356  start += 1;
357  continue;
358  }
359  skip_white (&start, end);
360  if (start < end) {
361  fprintf (stderr, "Page selection? %s", start);
362  ERROR ("Bad page range specification");
363  }
364  }
365  pop_arg();
366  }
367  break;
368  case 't':
369  {
370 #ifdef HAVE_LIBPNG
372 #else
373  ERROR ("The thumbnail option requires libpng, which you apparently don't have.");
374 #endif /* HAVE_LIBPNG */
375  }
376  break;
377  case 'd':
378  {
379 #ifdef HAVE_LIBPNG
380  thumb_remove ();
381 #else
382  ERROR ("The thumbnail option requires libpng, which you apparently don't have.");
383 #endif /* HAVE_LIBPNG */
384  }
385  break;
386  case 'p':
387  {
388  struct rect paper_size;
389  if (argc < 2)
390  ERROR ("Missing paper size");
392  paper_width = paper_size.width;
393  paper_height = paper_size.height;
394  pop_arg();
395  }
396  break;
397  case 'c':
398  ignore_colors = 1;
399  break;
400  case 'l':
401  landscape_mode = 1;
402  break;
403  case 'f':
404  dev_read_mapfile (argv[1]);
405  pop_arg();
406  break;
407  case 'e':
409  break;
410 #ifdef WIN32
411  case 'E':
412  expand_outlines();
413  break;
414 #endif
415  case 'q':
416  really_quiet = 1;
417  break;
418  case 'v':
420  dev_set_verbose();
421  dvi_set_verbose();
423  vf_set_verbose();
424  pk_set_verbose();
427  tfm_set_verbose();
428 #ifdef HAVE_TTF_FORMATS
429  ttf_set_verbose();
430 #endif
432  break;
433  case 'V':
434  {
435  unsigned level = 2;
436  if (isdigit (*(flag+1))) {
437  level = *(++flag) - '0';
438  } else {
439  char *result, *end, *start = argv[1];
440  if (argc < 2) {
441  fprintf (stderr, "\nVersion specification missing number (2, 3, ...)\n\n");
442  usage();
443  }
444  end = start + strlen(argv[1]);
446  if (result != NULL && start == end) {
447  level = (int) atof (result);
448  }
449  else {
450  fprintf (stderr, "\nError in number following version specification\n\n");
451  usage();
452  }
453  if (result != NULL) {
454  RELEASE (result);
455  }
456  pop_arg();
457  }
458  if (level >= 2) {
460  } else {
461  fprintf (stderr, "\nNumber following version specification is out of range\n\n");
462  }
463  }
464  break;
465  case 'z':
466  {
467  int level = 9;
468 #ifndef HAVE_ZLIB
469  fprintf (stderr, "\nYou don't have compression compiled in. Possibly libz wasn't found by configure.\nCompression specification will be ignored.\n\n");
470 #endif /* HAVE_ZLIB */
471  if (isdigit (*(flag+1))) {
472  level = *(++flag) - '0';
473  } else {
474  char *result, *end, *start = argv[1];
475  if (argc < 2) {
476  fprintf (stderr, "\nCompression specification missing number for level\n\n");
477  usage();
478  }
479  end = start + strlen(argv[1]);
481  if (result != NULL && start == end) {
482  level = (int) atof (result);
483  }
484  else {
485  fprintf (stderr, "\nError in number following compression specification\n\n");
486  usage();
487  }
488  if (result != NULL) {
489  RELEASE (result);
490  }
491  pop_arg();
492  }
493  if (level >= 0 && level <= 9) {
495  } else {
496  fprintf (stderr, "\nNumber following compression specification is out of range\n\n");
497  }
498  }
499  break;
500  default:
501  usage();
502  }
503  }
504  argc -= 1 ;
505  argv += 1;
506  }
507  if (argc > 1) {
508  fprintf (stderr, "\nMultiple dvi filenames?\n\n");
509  usage();
510  }
511  /* The only legitimate way to have argc == 0 here is
512  is do_args was called from config file. In that case, there is
513  no dvi file name. Check for that case */
514  if (argc > 0) {
515  if (strncmp (".dvi", argv[0]+strlen(argv[0])-4, 4)) {
516  dvi_filename = NEW (strlen (argv[0])+1+4, char);
517  strcpy (dvi_filename, argv[0]);
518  strcat (dvi_filename, ".dvi");
519  }
520  else {
521  dvi_filename = NEW (strlen (argv[0])+1, char);
522  strcpy (dvi_filename, argv[0]);
523  }
524  }
525 }
526 
527 
528 static void cleanup(void)
529 {
532  if (page_ranges)
534  psimage_close();
535 }
536 
537 static char *config_file_name = "dvipdfmo.cfg";
538 static void read_config_file (void)
539 {
540  char *full_config_name, *start, *end;
541  char *argv[2], *option;
542  FILE *config_file;
543 
544  if ((full_config_name = kpse_find_file (config_file_name,
546  0)) == NULL) {
547  full_config_name = kpse_find_file ("config",
549  if(full_config_name == NULL)
550  return;
551  }
552  if (!(config_file = MFOPEN (full_config_name, FOPEN_R_MODE))) {
553  fprintf (stderr, "\nError opening configuration file. Continuing with defaults.\n");
554  return;
555  }
557  config_file))) {
558  int argc = 0;
560  skip_white (&start, end);
561  if (start >= end)
562  continue;
563  /* Build up an argument list as if it were passed on the command
564  line */
565  if ((option = parse_ident (&start, end))) {
566  argc = 1;
567  argv[0] = NEW (strlen(option)+2, char);
568  strcpy (argv[0]+1, option);
569  RELEASE (option);
570  *argv[0] = '-';
571  skip_white (&start, end);
572  if (start < end) {
573  argc += 1;
574  if (*start == '"') {
575  argv[1] = parse_c_string (&start, end);
576  }
577  else
578  argv[1] = parse_ident (&start, end);
579  }
580  }
581  do_args (argc, argv);
582  while (argc > 0) {
583  RELEASE (argv[--argc]);
584  }
585  }
586 }
587 
588 void error_cleanup (void)
589 {
592  fprintf (stderr, "\nOutput file removed.\n");
593 }
594 
595 int CDECL main (int argc, char *argv[])
596 {
597  int i;
598  int at_least_one_page = 0;
599  if (argc < 2) {
600  fprintf (stderr, "\nNo dvi filename specified.\n\n");
601  usage();
602  return 1;
603  }
604 #ifdef KPATHSEA
605  kpse_set_program_name (argv[0], "dvipdfmx");
606 #endif
607 
608  argv+=1;
609  argc-=1;
610 
611  /* Override map files by command line arguments:
612  dvipdfm -f foo.map ...
613  It must be the first option. (--ak 2002/12/13 )
614  */
615 
616  if(argc > 0) {
617  if(argv[0][0]=='-' && argv[0][1]=='f') {
618  if(argc < 2) {
619  fprintf(stderr, "Argument error.\n");
620  usage();
621  }
622  dev_read_mapfile (argv[1]);
623  argv++; argv++;
624  argc--; argc--;
625  }
626  }
627 
628  /* Process config file, if any */
630 
631  do_args (argc, argv);
632 
633 #ifdef KPATHSEA
634  kpse_init_prog ("", font_dpi, NULL, NULL);
636  kpse_set_program_enabled (kpse_pk_format, true, kpse_src_texmf_cnf);
637 #endif
638 
639  if (!dvi_filename) {
640  fprintf (stderr, "\nNo dvi filename specified.\n\n");
641  usage();
642  }
643 
644  /* Check for ".dvi" at end of argument name */
645  if (pdf_filename == NULL)
647 
648  if (!really_quiet)
649  fprintf (stdout, "\n%s -> %s\n", dvi_filename, pdf_filename);
650 
652 
653  if (ignore_colors) {
656  }
657 
658  if (landscape_mode)
660  else
662 
663  if ((num_page_ranges))
664  for (i=0; i<num_page_ranges; i++) {
665  unsigned j;
666  if (page_ranges[i].first <= page_ranges[i].last)
667  for (j=page_ranges[i].first; j<=page_ranges[i].last && j<dvi_npages(); j++) {
668  fprintf (stderr, "[%d", j+1);
669  dvi_do_page (j);
670  at_least_one_page = 1;
671  fprintf (stderr, "]");
672  }
673  else
674  for (j=page_ranges[i].first;
675  j>=page_ranges[i].last && j<dvi_npages(); j--) {
676  fprintf (stderr, "[%d", j+1);
677  dvi_do_page (j);
678  at_least_one_page = 1;
679  fprintf (stderr, "]");
680  }
681  }
682  if (!at_least_one_page && num_page_ranges) {
683  fprintf (stderr, "No pages fall in range!\nFalling back to entire document.\n");
684  }
685  if (!at_least_one_page) /* Fall back to entire document */
686  for (i=0; i<dvi_npages(); i++) {
687  fprintf (stderr, "[%d", i+1);
688  dvi_do_page (i);
689  fprintf (stderr, "]");
690  }
691  dvi_close();
692  fprintf (stderr, "\n");
693  cleanup();
694  return 0;
695 }
696 
static const char * xbasename(const char *name)
Definition: afm2pl.c:410
int level
Definition: afm2pl.c:1694
void color_special_ignore_colors(void)
Definition: colorsp.c:34
char * strncpy()
int strcmp()
Definition: coll.cpp:143
char * strcpy()
void ttf_set_verbose(void)
Definition: ttf.c:48
int main(int argc, char *argv[])
Definition: dvipdfm.c:595
struct rect data
Definition: dvipdfm.c:64
int num_page_ranges
Definition: dvipdfm.c:164
char * pdf_filename
Definition: dvipdfm.c:93
static char ignore_colors
Definition: dvipdfm.c:155
static void cleanup(void)
Definition: dvipdfm.c:528
int max_page_ranges
Definition: dvipdfm.c:164
static void set_default_pdf_filename(void)
Definition: dvipdfm.c:94
static double paper_width
Definition: dvipdfm.c:152
char * dvi_filename
Definition: dvipdfm.c:93
static char * config_file_name
Definition: dvipdfm.c:537
void error_cleanup(void)
Definition: dvipdfm.c:588
char * s
Definition: dvipdfm.c:63
static double x_offset
Definition: dvipdfm.c:156
static void read_config_file(void)
Definition: dvipdfm.c:538
static void usage(void)
Definition: dvipdfm.c:114
static int really_quiet
Definition: dvipdfm.c:158
static char landscape_mode
Definition: dvipdfm.c:154
struct page_range * page_ranges
static double mag
Definition: dvipdfm.c:156
static double y_offset
Definition: dvipdfm.c:156
static void do_args(int argc, char *argv[])
Definition: dvipdfm.c:172
static int font_dpi
Definition: dvipdfm.c:157
static double paper_height
Definition: dvipdfm.c:152
#define pop_arg()
Definition: dvipdfm.c:171
static rect get_paper_size(char *string)
Definition: dvipdfm.c:80
struct @170 paper_sizes[]
void set_landscape_mode(void)
Definition: dvipdfm.c:166
void encoding_set_verbose(void)
Definition: encodings.c:14
long int flag
Definition: f2c.h:53
@ VERSION
Definition: genrb.cpp:69
char config_file[1024+4+1]
Definition: hbf2gf.c:282
JCOPY_OPTION option
Definition: transupp.h:131
#define NULL
Definition: ftobjs.h:61
small capitals from c petite p scientific i
Definition: afcover.h:80
void exit()
#define PACKAGE
Definition: config.h:90
#define NEW
Definition: gdkanji.c:77
#define CDECL
Definition: config.h:100
int atoi(const char *)
double atof(const char *)
char * parse_c_string(const char **pp, const char *endptr)
Definition: dpxutil.c:789
static void skip_white(const char **pp, const char *endptr)
Definition: dpxutil.c:74
void dvi_do_page(double page_paper_height, double hmargin, double vmargin)
Definition: dvi.c:2154
void dvi_close(void)
Definition: dvi.c:2389
double dvi_init(char *dvi_filename, double mag)
Definition: dvi.c:2327
unsigned int dvi_npages(void)
Definition: dvi.c:324
#define RENEW(p, n, type)
Definition: mem.h:38
#define RELEASE(p)
Definition: mem.h:39
char * mfgets(char *buffer, int length, FILE *file)
Definition: mfileio.c:132
char work_buffer[1024]
Definition: mfileio.c:171
#define WORK_BUFFER_SIZE
Definition: mfileio.h:68
#define MFOPEN(name, mode)
Definition: mfileio.h:42
void pdf_error_cleanup(void)
Definition: pdfobj.c:750
char * parse_number(const char **start, const char *end)
Definition: pdfparse.c:138
char * parse_unsigned(const char **start, const char *end)
Definition: pdfparse.c:161
char * parse_ident(const char **start, const char *end)
Definition: pdfparse.c:195
void set_distiller_template(char *s)
Definition: pdfximage.c:1069
void dvi_set_verbose(void)
Definition: dvi.c:93
#define ERROR(string)
Definition: error.h:36
void dev_set_page_size(double width, double height)
Definition: pdfdev.c:76
void dev_set_verbose(void)
Definition: pdfdev.c:100
void dev_read_mapfile(char *filename)
Definition: pdfdev.c:278
void pdf_doc_enable_thumbnails(void)
Definition: pdfdoc.c:827
void pdf_doc_set_verbose(void)
Definition: pdfdoc.c:96
void pdf_obj_set_compression(int level)
Definition: pdfobj.c:102
void pdf_obj_set_verbose(void)
Definition: pdfobj.c:129
void pdf_set_version(unsigned version)
Definition: pdfobj.c:117
void pk_set_verbose(void)
Definition: pkfont.c:45
void pk_set_dpi(int dpi)
Definition: pkfont.c:50
void tfm_set_verbose(void)
Definition: tfm.c:104
void type0_set_verbose(void)
Definition: type0.c:28
void type1_set_verbose(void)
Definition: type1.c:49
void type1_disable_partial(void)
Definition: type1.c:79
void vf_set_verbose(void)
Definition: vf.c:48
#define basename
Definition: dvi.c:33
#define UINT_MAX
Definition: c-minmax.h:56
@ kpse_src_texmf_cnf
Definition: types.h:172
@ kpse_program_text_format
Definition: types.h:142
@ kpse_pk_format
Definition: types.h:104
#define fprintf
Definition: mendex.h:64
int remove()
int strncmp()
#define isdigit(c)
Definition: snprintf.c:177
#define FOPEN_R_MODE
Definition: includes.h:75
int unit
Definition: tfmread.c:8
int paper_size(const char *paper_name, double *width, double *height)
Definition: paper-size.c:70
void pdf_special_set_grow(double g)
Definition: pdfspecial.c:77
void pdf_special_ignore_colors(void)
Definition: pdfspecial.c:86
double parse_one_unit(char **start, char *end)
Definition: pdfspecial.c:326
static int32_t last
Definition: ppagelist.c:29
static int32_t first
Definition: ppagelist.c:29
void psimage_close(void)
Definition: psimage.c:181
#define flag
Definition: round_prec.c:45
Definition: getopt.h:95
int last
Definition: dvipdfmx.c:284
unsigned int first
Definition: dvipdfm.c:162
int first
Definition: dvipdfmx.c:284
Definition: dvipdfm.c:55
double height
Definition: dvipdfm.c:57
double width
Definition: dvipdfm.c:56
Definition: fio.h:71
#define FILE
Definition: t1stdio.h:34
int j
Definition: t4ht.c:1589
*job_name strlen((char *) job_name) - 4)
return() int(((double) *(font_tbl[cur_fnt].wtbl+(int)(*(font_tbl[cur_fnt].char_wi+(int)(ch - font_tbl[cur_fnt].char_f)% 256)))/(double)(1L<< 20)) *(double) font_tbl[cur_fnt].scale)
void thumb_remove(void)
Definition: thumbnail.c:59
@ start
Definition: preamble.c:52
#define argv
Definition: xmain.c:270
#define argc
Definition: xmain.c:269
#define end(cp)
Definition: zic.c:71