diff options
Diffstat (limited to 'source/pdf')
-rw-r--r-- | source/pdf/pdf-write.c | 61 |
1 files changed, 27 insertions, 34 deletions
diff --git a/source/pdf/pdf-write.c b/source/pdf/pdf-write.c index 5183b285..1111c0ff 100644 --- a/source/pdf/pdf-write.c +++ b/source/pdf/pdf-write.c @@ -1968,46 +1968,39 @@ static void writexref(fz_context *ctx, pdf_document *doc, pdf_write_state *opts, fz_var(trailer); - fz_try(ctx) + if (opts->do_incremental) { - if (opts->do_incremental) - { - trailer = pdf_keep_obj(ctx, pdf_trailer(ctx, doc)); - pdf_dict_put_drop(ctx, trailer, PDF_NAME_Size, pdf_new_int(ctx, doc, pdf_xref_len(ctx, doc))); - pdf_dict_put_drop(ctx, trailer, PDF_NAME_Prev, pdf_new_int(ctx, doc, doc->startxref)); - doc->startxref = startxref; - } - else - { - trailer = pdf_new_dict(ctx, doc, 5); + trailer = pdf_keep_obj(ctx, pdf_trailer(ctx, doc)); + pdf_dict_put_drop(ctx, trailer, PDF_NAME_Size, pdf_new_int(ctx, doc, pdf_xref_len(ctx, doc))); + pdf_dict_put_drop(ctx, trailer, PDF_NAME_Prev, pdf_new_int(ctx, doc, doc->startxref)); + doc->startxref = startxref; + } + else + { + trailer = pdf_new_dict(ctx, doc, 5); - nobj = pdf_new_int(ctx, doc, to); - pdf_dict_put_drop(ctx, trailer, PDF_NAME_Size, nobj); + nobj = pdf_new_int(ctx, doc, to); + pdf_dict_put_drop(ctx, trailer, PDF_NAME_Size, nobj); - if (first) - { - obj = pdf_dict_get(ctx, pdf_trailer(ctx, doc), PDF_NAME_Info); - if (obj) - pdf_dict_put(ctx, trailer, PDF_NAME_Info, obj); + if (first) + { + obj = pdf_dict_get(ctx, pdf_trailer(ctx, doc), PDF_NAME_Info); + if (obj) + pdf_dict_put(ctx, trailer, PDF_NAME_Info, obj); - obj = pdf_dict_get(ctx, pdf_trailer(ctx, doc), PDF_NAME_Root); - if (obj) - pdf_dict_put(ctx, trailer, PDF_NAME_Root, obj); + obj = pdf_dict_get(ctx, pdf_trailer(ctx, doc), PDF_NAME_Root); + if (obj) + pdf_dict_put(ctx, trailer, PDF_NAME_Root, obj); - obj = pdf_dict_get(ctx, pdf_trailer(ctx, doc), PDF_NAME_ID); - if (obj) - pdf_dict_put(ctx, trailer, PDF_NAME_ID, obj); - } - if (main_xref_offset != 0) - { - nobj = pdf_new_int(ctx, doc, main_xref_offset); - pdf_dict_put_drop(ctx, trailer, PDF_NAME_Prev, nobj); - } + obj = pdf_dict_get(ctx, pdf_trailer(ctx, doc), PDF_NAME_ID); + if (obj) + pdf_dict_put(ctx, trailer, PDF_NAME_ID, obj); + } + if (main_xref_offset != 0) + { + nobj = pdf_new_int(ctx, doc, main_xref_offset); + pdf_dict_put_drop(ctx, trailer, PDF_NAME_Prev, nobj); } - } - fz_catch(ctx) - { - fz_rethrow(ctx); } fz_write_string(ctx, opts->out, "trailer\n"); |