1.1 diff -r ccf1c28a2940 -r 76c197fe2eeb pdf.c 1.2 --- a/pdf.c Fri Mar 14 08:56:38 2003 +0000 1.3 +++ b/pdf.c Fri Mar 14 08:57:40 2003 +0000 1.4 @@ -2,7 +2,7 @@ 1.5 * tumble: build a PDF file from image files 1.6 * 1.7 * PDF routines 1.8 - * $Id: pdf.c,v 1.12 2003/03/14 00:24:37 eric Exp $ 1.9 + * $Id: pdf.c,v 1.13 2003/03/14 00:57:40 eric Exp $ 1.10 * Copyright 2001, 2002, 2003 Eric Smith <eric@brouhaha.com> 1.11 * 1.12 * This program is free software; you can redistribute it and/or modify 1.13 @@ -67,19 +67,9 @@ 1.14 } 1.15 1.16 1.17 -pdf_file_handle pdf_create (char *filename, int page_mode) 1.18 +pdf_file_handle pdf_create (char *filename) 1.19 { 1.20 pdf_file_handle pdf_file; 1.21 - char *page_mode_string; 1.22 - 1.23 - switch (page_mode) 1.24 - { 1.25 - case PDF_PAGE_MODE_USE_NONE: page_mode_string = "UseNone"; break; 1.26 - case PDF_PAGE_MODE_USE_OUTLINES: page_mode_string = "UseOutlines"; break; 1.27 - case PDF_PAGE_MODE_USE_THUMBS: page_mode_string = "UseThumbs"; break; 1.28 - default: 1.29 - pdf_fatal ("invalid page mode\n"); 1.30 - } 1.31 1.32 pdf_file = pdf_calloc (1, sizeof (struct pdf_file)); 1.33 1.34 @@ -95,9 +85,6 @@ 1.35 pdf_set_dict_entry (pdf_file->catalog, "Type", pdf_new_name ("Catalog")); 1.36 pdf_set_dict_entry (pdf_file->catalog, "Pages", pdf_file->root->pages_dict); 1.37 /* Outlines dictionary will be created later if needed */ 1.38 - pdf_set_dict_entry (pdf_file->catalog, 1.39 - "PageMode", 1.40 - pdf_new_name (page_mode_string)); 1.41 pdf_set_dict_entry (pdf_file->catalog, "PageLayout", pdf_new_name ("SinglePage")); 1.42 1.43 pdf_file->info = pdf_new_ind_ref (pdf_file, pdf_new_obj (PT_DICTIONARY)); 1.44 @@ -119,8 +106,31 @@ 1.45 } 1.46 1.47 1.48 -void pdf_close (pdf_file_handle pdf_file) 1.49 +void pdf_close (pdf_file_handle pdf_file, int page_mode) 1.50 { 1.51 + char *page_mode_string; 1.52 + 1.53 + page_mode_string = "UseNone"; 1.54 + 1.55 + switch (page_mode) 1.56 + { 1.57 + case PDF_PAGE_MODE_USE_NONE: 1.58 + break; 1.59 + case PDF_PAGE_MODE_USE_OUTLINES: 1.60 + if (pdf_file->outline_root) 1.61 + page_mode_string = "UseOutlines"; 1.62 + break; 1.63 + case PDF_PAGE_MODE_USE_THUMBS: 1.64 + page_mode_string = "UseThumbs"; 1.65 + break; 1.66 + default: 1.67 + pdf_fatal ("invalid page mode\n"); 1.68 + } 1.69 + 1.70 + pdf_set_dict_entry (pdf_file->catalog, 1.71 + "PageMode", 1.72 + pdf_new_name (page_mode_string)); 1.73 + 1.74 /* finalize trees, object numbers aren't allocated until this step */ 1.75 pdf_finalize_name_trees (pdf_file); 1.76