diff options
-rw-r--r-- | gs/src/gdevpdf.c | 2 | ||||
-rw-r--r-- | gs/src/gdevpdfu.c | 46 | ||||
-rw-r--r-- | gs/src/gdevpdfx.h | 25 | ||||
-rw-r--r-- | gs/src/gdevpdtb.c | 80 | ||||
-rw-r--r-- | gs/src/gdevpdtb.h | 13 | ||||
-rw-r--r-- | gs/src/gdevpdtd.c | 12 | ||||
-rw-r--r-- | gs/src/gdevpdtf.c | 15 | ||||
-rw-r--r-- | gs/src/gdevpdti.c | 5 | ||||
-rw-r--r-- | gs/src/gdevpdtw.c | 44 | ||||
-rw-r--r-- | gs/src/gdevpdtw.h | 5 |
10 files changed, 8 insertions, 239 deletions
diff --git a/gs/src/gdevpdf.c b/gs/src/gdevpdf.c index a2d65ac9b..77b4f2975 100644 --- a/gs/src/gdevpdf.c +++ b/gs/src/gdevpdf.c @@ -1123,11 +1123,9 @@ pdf_close(gx_device * dev) if (code >= 0) code = code1; #endif -#if PDFW_DELAYED_STREAMS code1 = pdf_free_resource_objects(pdev, resourceOther); if (code >= 0) code = code1; -#endif /* Create the Pages tree. */ diff --git a/gs/src/gdevpdfu.c b/gs/src/gdevpdfu.c index 4829e47d9..2afb34ada 100644 --- a/gs/src/gdevpdfu.c +++ b/gs/src/gdevpdfu.c @@ -482,10 +482,7 @@ pdf_cancel_resource(gx_device_pdf * pdev, pdf_resource_t *pres, pdf_resource_typ /* fixme : remove *pres from resource chain. */ pres->where_used = 0; pres->object->written = true; - if (rtype == resourceXObject || rtype == resourceCharProc -#if PDFW_DELAYED_STREAMS - || rtype == resourceOther -#endif + if (rtype == resourceXObject || rtype == resourceCharProc || rtype == resourceOther ) { int code = cos_stream_release_pieces((cos_stream_t *)pres->object); @@ -1388,15 +1385,9 @@ pdf_begin_data(gx_device_pdf *pdev, pdf_data_writer_t *pdw) DATA_STREAM_BINARY | DATA_STREAM_COMPRESS, 0); } -#if PDFW_DELAYED_STREAMS int pdf_append_data_stream_filters(gx_device_pdf *pdev, pdf_data_writer_t *pdw, int orig_options, gs_id object_id) -#else -int -pdf_begin_data_stream(gx_device_pdf *pdev, pdf_data_writer_t *pdw, - int orig_options, gs_id object_id) -#endif { stream *s = pdev->strm; int options = orig_options; @@ -1440,7 +1431,7 @@ pdf_begin_data_stream(gx_device_pdf *pdev, pdf_data_writer_t *pdw, pdw->encrypted = true; } else pdw->encrypted = false; - if ((options & DATA_STREAM_BINARY) || !PDFW_DELAYED_STREAMS) { + if (options & DATA_STREAM_BINARY) { code = psdf_begin_binary((gx_device_psdf *)pdev, &pdw->binary); if (code < 0) return code; @@ -1458,7 +1449,6 @@ pdf_begin_data_stream(gx_device_pdf *pdev, pdf_data_writer_t *pdw, #undef USE_FLATE } -#if PDFW_DELAYED_STREAMS int pdf_begin_data_stream(gx_device_pdf *pdev, pdf_data_writer_t *pdw, int options, gs_id object_id) @@ -1492,38 +1482,6 @@ pdf_end_data(pdf_data_writer_t *pdw) return 0; } -#else -/* End a data stream. */ -int -pdf_end_data(pdf_data_writer_t *pdw) -{ - gx_device_pdf *pdev = (gx_device_pdf *)pdw->binary.dev; - int code = psdf_end_binary(&pdw->binary); - long length = stell(pdev->strm) - pdw->start; - - if (code < 0) - return code; - if (pdw->encrypted) - pdf_end_encrypt(pdev); - stream_puts(pdev->strm, "\nendstream\n"); -# if PS2WRITE - if (pdev->OrderResources) { - int pos = stell(pdev->strm); - - sseek(pdev->strm, pdw->length_pos); - pprintld1(pdev->strm, "%ld", length); - sseek(pdev->strm, pos); - pdf_end_separate(pdev); - return 0; - } -# endif - pdf_end_separate(pdev); - pdf_open_separate(pdev, pdw->length_id); - pprintld1(pdev->strm, "%ld\n", length); - return pdf_end_separate(pdev); -} -#endif - /* Create a Function object. */ private int pdf_function_array(gx_device_pdf *pdev, cos_array_t *pca, const gs_function_info_t *pinfo); diff --git a/gs/src/gdevpdfx.h b/gs/src/gdevpdfx.h index 1220a5925..f5b530f0c 100644 --- a/gs/src/gdevpdfx.h +++ b/gs/src/gdevpdfx.h @@ -30,7 +30,6 @@ #include "gdevpsdf.h" #include "gxdevmem.h" -#define PDFW_DELAYED_STREAMS (PS2WRITE & 1) /* Old code = 0, new code = 1 */ #define CONVERT_CFF_TO_TYPE1 (PS2WRITE & 0) /* Old code = 0, new code = 1 */ #define FINE_GLYPH_USAGE 1 /* Old code = 0, new code = 1 */ @@ -108,10 +107,8 @@ typedef enum { resourceShading, resourceXObject, #if PS2WRITE -#if PDFW_DELAYED_STREAMS resourceOther, /* Anything else that needs to be stored for a time. */ #endif -#endif resourceFont, /* * Internally used (pseudo-)resources. @@ -128,7 +125,6 @@ typedef enum { } pdf_resource_type_t; #if PS2WRITE -#if PDFW_DELAYED_STREAMS #define PDF_RESOURCE_TYPE_NAMES\ "/ColorSpace", "/ExtGState", "/Pattern", "/Shading", "/XObject", 0, "/Font",\ 0, "/Font", "/CMap", "/FontDescriptor", 0 @@ -146,23 +142,6 @@ typedef enum { &st_pdf_font_descriptor, /* gdevpdff.h / gdevpdff.c */\ &st_pdf_resource,\ &st_pdf_resource -#else /* PDFW_DELAYED_STREAMS */ - "/ColorSpace", "/ExtGState", "/Pattern", "/Shading", "/XObject", "/Font",\ - 0, "/Font", "/CMap", "/FontDescriptor", 0 -#define PDF_RESOURCE_TYPE_STRUCTS\ - &st_pdf_color_space, /* gdevpdfg.h / gdevpdfc.c */\ - &st_pdf_resource, /* see below */\ - &st_pdf_pattern,\ - &st_pdf_resource,\ - &st_pdf_x_object, /* see below */\ - &st_pdf_font_resource, /* gdevpdff.h / gdevpdff.c */\ - &st_pdf_char_proc, /* gdevpdff.h / gdevpdff.c */\ - &st_pdf_font_resource, /* gdevpdff.h / gdevpdff.c */\ - &st_pdf_resource,\ - &st_pdf_font_descriptor, /* gdevpdff.h / gdevpdff.c */\ - &st_pdf_resource,\ - &st_pdf_resource -#endif /* PDFW_DELAYED_STREAMS */ #else /* PS2WRITE */ #define PDF_RESOURCE_TYPE_NAMES\ "/ColorSpace", "/ExtGState", "/Pattern", "/Shading", "/XObject", "/Font",\ @@ -988,10 +967,8 @@ typedef struct pdf_data_writer_s { #if PS2WRITE long length_pos; #endif -#if PDFW_DELAYED_STREAMS pdf_resource_t *pres; gx_device_pdf *pdev; /* temporary for backward compatibility of pdf_end_data prototype. */ -#endif long length_id; bool encrypted; } pdf_data_writer_t; @@ -1006,10 +983,8 @@ typedef struct pdf_data_writer_s { #define DATA_STREAM_ENCRYPT 8 /* Encrypt data. */ int pdf_begin_data_stream(gx_device_pdf *pdev, pdf_data_writer_t *pdw, int options, gs_id object_id); -#if PDFW_DELAYED_STREAMS int pdf_append_data_stream_filters(gx_device_pdf *pdev, pdf_data_writer_t *pdw, int orig_options, gs_id object_id); -#endif /* begin_data = begin_data_binary with both options = true. */ int pdf_begin_data(gx_device_pdf *pdev, pdf_data_writer_t *pdw); diff --git a/gs/src/gdevpdtb.c b/gs/src/gdevpdtb.c index 4f06fb50b..0c66a836f 100644 --- a/gs/src/gdevpdtb.c +++ b/gs/src/gdevpdtb.c @@ -71,22 +71,15 @@ struct pdf_base_font_s { */ int num_glyphs; byte *CIDSet; /* for CIDFonts */ -#if !PDFW_DELAYED_STREAMS - long FontFile_id; /* non-0 iff the font is embedded */ -#endif gs_string font_name; bool written; -#if PDFW_DELAYED_STREAMS cos_dict_t *FontFile; -#endif }; BASIC_PTRS(pdf_base_font_ptrs) { GC_OBJ_ELT(pdf_base_font_t, copied), GC_OBJ_ELT(pdf_base_font_t, complete), GC_OBJ_ELT(pdf_base_font_t, CIDSet), -#if PDFW_DELAYED_STREAMS GC_OBJ_ELT(pdf_base_font_t, FontFile), -#endif GC_STRING_ELT(pdf_base_font_t, font_name) }; gs_private_st_basic(st_pdf_base_font, pdf_base_font_t, "pdf_base_font_t", @@ -158,21 +151,9 @@ pdf_begin_fontfile(gx_device_pdf *pdev, long FontFile_id, const char *entries, long len1, pdf_data_writer_t *pdw) { int code; -#if !PDFW_DELAYED_STREAMS - stream *s; - - pdf_open_separate(pdev, FontFile_id); - s = pdev->strm; - stream_puts(s, "<<"); - if (entries) - stream_puts(pdev->strm, entries); - if (len1 >= 0) - pprintld1(pdev->strm, "/Length1 %ld", len1); -#endif code = pdf_begin_data_stream(pdev, pdw, DATA_STREAM_BINARY | DATA_STREAM_ENCRYPT | (pdev->CompressFonts ? DATA_STREAM_COMPRESS : 0), FontFile_id); -#if PDFW_DELAYED_STREAMS if (len1 >= 0) { code = cos_dict_put_c_key_int((cos_dict_t *)pdw->pres->object, "/Length1", len1); if (code < 0) @@ -187,7 +168,6 @@ pdf_begin_fontfile(gx_device_pdf *pdev, long FontFile_id, if (code < 0) return code; } -#endif return code; } @@ -195,13 +175,9 @@ pdf_begin_fontfile(gx_device_pdf *pdev, long FontFile_id, private int pdf_end_fontfile(gx_device_pdf *pdev, pdf_data_writer_t *pdw) { -#if !PDFW_DELAYED_STREAMS - return pdf_end_data(pdw); -#else /* We would like to call pdf_end_data, but we don't want to write the object to the output file now. */ return pdf_close_aside(pdw->pdev); -#endif } /* ---------------- Public ---------------- */ @@ -464,16 +440,8 @@ pdf_write_FontFile_entry(gx_device_pdf *pdev, pdf_base_font_t *pbfont) # endif FontFile_key = "/FontFile3"; } -#if !PDFW_DELAYED_STREAMS - if (pbfont->FontFile_id == 0) - pbfont->FontFile_id = pdf_obj_ref(pdev); -#endif stream_puts(s, FontFile_key); -#if !PDFW_DELAYED_STREAMS - pprintld1(s, " %ld 0 R", pbfont->FontFile_id); -#else pprintld1(s, " %ld 0 R", pbfont->FontFile->id); -#endif return 0; } @@ -530,15 +498,9 @@ pdf_adjust_font_name(gx_device_pdf *pdev, long id, pdf_base_font_t *pbfont) /* * Write an embedded font. */ -#if PDFW_DELAYED_STREAMS int pdf_write_embedded_font(gx_device_pdf *pdev, pdf_base_font_t *pbfont, gs_int_rect *FontBBox, gs_id rid, cos_dict_t **ppcd) -#else -int -pdf_write_embedded_font(gx_device_pdf *pdev, pdf_base_font_t *pbfont, - gs_int_rect *FontBBox, gs_id rid) -#endif { bool do_subset = pdf_do_subset_font(pdev, pbfont, rid); gs_font_base *out_font = @@ -550,17 +512,11 @@ pdf_write_embedded_font(gx_device_pdf *pdev, pdf_base_font_t *pbfont, if (pbfont->written) return 0; /* already written */ -#if !PDFW_DELAYED_STREAMS - if (pbfont->FontFile_id == 0) - pbfont->FontFile_id = pdf_obj_ref(pdev); - FontFile_id = pbfont->FontFile_id; -#else FontFile_id = -1; /* A stub for old code compatibility. */ /* We write the font data to a delayed stream to provide it to be written after the font descriptor for ps2write needs. */ -#endif if (pdev->CompatibilityLevel == 1.2 && !do_subset && !pbfont->is_standard ) { /* @@ -706,10 +662,8 @@ pdf_write_embedded_font(gx_device_pdf *pdev, pdf_base_font_t *pbfont, (gs_font_cid2 *)out_font, CID2_OPTIONS, NULL, 0, &fnstr); finish: -# if PDFW_DELAYED_STREAMS - pdf_reserve_object_id(pdev, writer.pres, gs_no_id); - *ppcd = (cos_dict_t *)writer.pres->object; -# endif + pdf_reserve_object_id(pdev, writer.pres, gs_no_id); + *ppcd = (cos_dict_t *)writer.pres->object; if (code < 0) { pdf_end_fontfile(pdev, &writer); return code; @@ -758,7 +712,6 @@ pdf_write_CharSet(gx_device_pdf *pdev, pdf_base_font_t *pbfont) /* * Write the CIDSet object for a subsetted CIDFont. */ -#if PDFW_DELAYED_STREAMS int pdf_write_CIDSet(gx_device_pdf *pdev, pdf_base_font_t *pbfont, long *pcidset_id) @@ -780,33 +733,6 @@ pdf_write_CIDSet(gx_device_pdf *pdev, pdf_base_font_t *pbfont, *pcidset_id = pdf_resource_id(writer.pres); return 0; } -#else -int -pdf_write_CIDSet(gx_device_pdf *pdev, pdf_base_font_t *pbfont, - long *pcidset_id) -{ - pdf_data_writer_t writer; - long cidset_id = pdf_begin_separate(pdev); - int code; - stream *s = pdev->strm; - - stream_puts(s, "<<"); - code = pdf_begin_data(pdev, &writer); - if (code >= 0) { - stream_write(writer.binary.strm, pbfont->CIDSet, - (pbfont->num_glyphs + 7) / 8); - code = pdf_end_data(&writer); - if (code >= 0) { - *pcidset_id = cidset_id; - return code; - } - } - /* code < 0 */ - pdf_end_separate(pdev); - return code; -} -#endif - /* * Check whether a base font is standard. */ @@ -815,7 +741,6 @@ pdf_is_standard_font(pdf_base_font_t *bfont) { return bfont->is_standard; } -#if PDFW_DELAYED_STREAMS void pdf_set_FontFile_object(pdf_base_font_t *bfont, cos_dict_t *pcd) { @@ -826,4 +751,3 @@ pdf_get_FontFile_object(pdf_base_font_t *bfont) { return bfont->FontFile; } -#endif diff --git a/gs/src/gdevpdtb.h b/gs/src/gdevpdtb.h index 96f86f14f..e072289de 100644 --- a/gs/src/gdevpdtb.h +++ b/gs/src/gdevpdtb.h @@ -134,13 +134,8 @@ int pdf_write_FontFile_entry(gx_device_pdf *pdev, pdf_base_font_t *pbfont); /* * Write an embedded font, possibly subsetted. */ -#if PDFW_DELAYED_STREAMS int pdf_write_embedded_font(gx_device_pdf *pdev, pdf_base_font_t *pbfont, gs_int_rect *FontBBox, gs_id rid, cos_dict_t **ppcd); -#else -int pdf_write_embedded_font(gx_device_pdf *pdev, pdf_base_font_t *pbfont, - gs_int_rect *FontBBox, gs_id rid); -#endif /* * Write the CharSet data for a subsetted font, as a PDF string. @@ -158,11 +153,7 @@ int pdf_write_CIDSet(gx_device_pdf *pdev, pdf_base_font_t *pbfont, */ bool pdf_is_standard_font(pdf_base_font_t *bfont); -#if PDFW_DELAYED_STREAMS -void -pdf_set_FontFile_object(pdf_base_font_t *bfont, cos_dict_t *pcd); -const cos_dict_t * -pdf_get_FontFile_object(pdf_base_font_t *bfont); -#endif +void pdf_set_FontFile_object(pdf_base_font_t *bfont, cos_dict_t *pcd); +const cos_dict_t * pdf_get_FontFile_object(pdf_base_font_t *bfont); #endif /* gdevpdtb_INCLUDED */ diff --git a/gs/src/gdevpdtd.c b/gs/src/gdevpdtd.c index 3d777d34b..34120cfb4 100644 --- a/gs/src/gdevpdtd.c +++ b/gs/src/gdevpdtd.c @@ -559,15 +559,9 @@ pdf_finish_FontDescriptor(gx_device_pdf *pdev, pdf_font_descriptor_t *pfd) (!pfd->embed || (code = pdf_write_embedded_font(pdev, pfd->base_font, &pfd->common.values.FontBBox, - pfd->common.rid -# if PDFW_DELAYED_STREAMS - , &pcd -# endif - )) >= 0) + pfd->common.rid, &pcd)) >= 0) ) { -# if PDFW_DELAYED_STREAMS - pdf_set_FontFile_object(pfd->base_font, pcd); -# endif + pdf_set_FontFile_object(pfd->base_font, pcd); } return code; } @@ -644,7 +638,6 @@ pdf_write_FontDescriptor(gx_device_pdf *pdev, pdf_font_descriptor_t *pfd) stream_puts(s, ">>\n"); pdf_end_separate(pdev); pfd->common.object->written = true; -# if PDFW_DELAYED_STREAMS { const cos_object_t *pco = (const cos_object_t *)pdf_get_FontFile_object(pfd->base_font); if (pco != NULL) { code = COS_WRITE_OBJECT(pco, pdev); @@ -652,6 +645,5 @@ pdf_write_FontDescriptor(gx_device_pdf *pdev, pdf_font_descriptor_t *pfd) return code; } } -# endif return 0; } diff --git a/gs/src/gdevpdtf.c b/gs/src/gdevpdtf.c index d3da09e59..ab6decced 100644 --- a/gs/src/gdevpdtf.c +++ b/gs/src/gdevpdtf.c @@ -938,20 +938,5 @@ int pdf_cmap_alloc(gx_device_pdf *pdev, const gs_cmap_t *pcmap, pdf_resource_t **ppres, int font_index_only) { -#if PDFW_DELAYED_STREAMS return pdf_write_cmap(pdev, pcmap, ppres, font_index_only); -#else - /* - * We don't store any of the contents of the CMap: instead, we write - * it out immediately and just save the id. Since some CMaps are very - * large, we should wait, and only write the entries actually used. - * This is a project for some future date.... - */ - int code = pdf_alloc_resource(pdev, resourceCMap, - pcmap->id + max(font_index_only, 0), ppres, 0L); - - if (code < 0) - return code; - return pdf_write_cmap(pdev, pcmap, *ppres, font_index_only); -#endif } diff --git a/gs/src/gdevpdti.c b/gs/src/gdevpdti.c index 3a41d970f..606644e34 100644 --- a/gs/src/gdevpdti.c +++ b/gs/src/gdevpdti.c @@ -468,13 +468,8 @@ pdf_open_aside(gx_device_pdf *pdev, pdf_resource_type_t rtype, if (s == 0) return_error(gs_error_VMerror); pdev->strm = s; -#if PDFW_DELAYED_STREAMS code = pdf_append_data_stream_filters(pdev, &writer, options | DATA_STREAM_NOLENGTH, 0); -#else - code = pdf_begin_data_stream(pdev, &writer, - options | DATA_STREAM_NOLENGTH, 0); -#endif if (code < 0) { pdev->strm = save_strm; return code; diff --git a/gs/src/gdevpdtw.c b/gs/src/gdevpdtw.c index 69dacd9dd..98be35636 100644 --- a/gs/src/gdevpdtw.c +++ b/gs/src/gdevpdtw.c @@ -504,10 +504,6 @@ pdf_write_contents_cid2(gx_device_pdf *pdev, pdf_font_resource_t *pdfont) pdf_data_writer_t writer; int i; -#if !PDFW_DELAYED_STREAMS - pdf_open_separate(pdev, map_id); - stream_puts(pdev->strm, "<<"); -#endif pdf_begin_data_stream(pdev, &writer, DATA_STREAM_BINARY | DATA_STREAM_COMPRESS | DATA_STREAM_ENCRYPT, map_id); for (i = 0; i < count; ++i) { @@ -677,7 +673,6 @@ pdf_write_cid_system_info(gx_device_pdf *pdev, * Write a CMap resource. We pass the CMap object as well as the resource, * because we write CMaps when they are created. */ -#if PDFW_DELAYED_STREAMS int pdf_write_cmap(gx_device_pdf *pdev, const gs_cmap_t *pcmap, pdf_resource_t **ppres /*CMap*/, int font_index_only) @@ -730,42 +725,3 @@ pdf_write_cmap(gx_device_pdf *pdev, const gs_cmap_t *pcmap, return code; return code; } -#else -int -pdf_write_cmap(gx_device_pdf *pdev, const gs_cmap_t *pcmap, - pdf_resource_t *pres /*CMap*/, int font_index_only) -{ - pdf_data_writer_t writer; - stream *s; - int code; - - if (pres->object->written) - return 0; - pdf_open_separate(pdev, pres->object->id); - s = pdev->strm; - stream_puts(s, "<<"); - if (!pcmap->ToUnicode) { - pprintd1(s, "/WMode %d/CMapName", pcmap->WMode); - pdf_put_name(pdev, pcmap->CMapName.data, pcmap->CMapName.size); - stream_puts(s, "/CIDSystemInfo"); - code = pdf_write_cid_system_info(pdev, pcmap->CIDSystemInfo, pres->object->id); - if (code < 0) - return code; - } - code = pdf_begin_data_stream(pdev, &writer, - DATA_STREAM_NOT_BINARY | DATA_STREAM_ENCRYPT | - (pdev->CompressFonts ? - DATA_STREAM_COMPRESS : 0), pres->object->id); - if (code < 0) - return code; - code = psf_write_cmap(writer.binary.strm, pcmap, - pdf_put_name_chars_proc(pdev), NULL, font_index_only); - if (code < 0) - return code; - code = pdf_end_data(&writer); - if (code < 0) - return code; - pres->object->written = true; - return 0; -} -#endif diff --git a/gs/src/gdevpdtw.h b/gs/src/gdevpdtw.h index 35db19f80..654dcf822 100644 --- a/gs/src/gdevpdtw.h +++ b/gs/src/gdevpdtw.h @@ -66,12 +66,7 @@ int pdf_write_cid_system_info(gx_device_pdf *pdev, * Write a CMap resource. We pass the CMap object as well as the resource, * because we write CMaps when they are created. */ -#if PDFW_DELAYED_STREAMS int pdf_write_cmap(gx_device_pdf *pdev, const gs_cmap_t *pcmap, pdf_resource_t **ppres, int font_index_only); -#else -int pdf_write_cmap(gx_device_pdf *pdev, const gs_cmap_t *pcmap, - pdf_resource_t *pres, int font_index_only); -#endif #endif /* gdevpdtw_INCLUDED */ |