From 92a5b99aac65e0cfbaade191483b485fa9918641 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Tue, 18 Sep 2018 11:47:22 +0200 Subject: Add accessor for field text label. --- include/mupdf/pdf/field.h | 1 + include/mupdf/pdf/name-table.h | 1 + source/pdf/pdf-form.c | 10 ++++++++++ 3 files changed, 12 insertions(+) diff --git a/include/mupdf/pdf/field.h b/include/mupdf/pdf/field.h index 6fdb55d6..f8ea96c8 100644 --- a/include/mupdf/pdf/field.h +++ b/include/mupdf/pdf/field.h @@ -39,6 +39,7 @@ void pdf_field_set_text_color(fz_context *ctx, pdf_document *doc, pdf_obj *field void pdf_signature_set_value(fz_context *ctx, pdf_document *doc, pdf_obj *field, pdf_pkcs7_signer *signer); int pdf_field_display(fz_context *ctx, pdf_document *doc, pdf_obj *field); char *pdf_field_name(fz_context *ctx, pdf_document *doc, pdf_obj *field); +const char *pdf_field_label(fz_context *ctx, pdf_document *doc, pdf_obj *field); void pdf_field_set_display(fz_context *ctx, pdf_document *doc, pdf_obj *field, int d); pdf_obj *pdf_lookup_field(fz_context *ctx, pdf_obj *form, char *name); void pdf_field_reset(fz_context *ctx, pdf_document *doc, pdf_obj *field); diff --git a/include/mupdf/pdf/name-table.h b/include/mupdf/pdf/name-table.h index 385f7331..2461f446 100644 --- a/include/mupdf/pdf/name-table.h +++ b/include/mupdf/pdf/name-table.h @@ -375,6 +375,7 @@ PDF_MAKE_NAME("Symb", Symb) PDF_MAKE_NAME("T", T) PDF_MAKE_NAME("TR", TR) PDF_MAKE_NAME("TR2", TR2) +PDF_MAKE_NAME("TU", TU) PDF_MAKE_NAME("Text", Text) PDF_MAKE_NAME("TilingType", TilingType) PDF_MAKE_NAME("Times", Times) diff --git a/source/pdf/pdf-form.c b/source/pdf/pdf-form.c index d5dad22b..a868bf75 100644 --- a/source/pdf/pdf-form.c +++ b/source/pdf/pdf-form.c @@ -922,6 +922,16 @@ char *pdf_field_name(fz_context *ctx, pdf_document *doc, pdf_obj *field) return get_field_name(ctx, doc, field, 0); } +const char *pdf_field_label(fz_context *ctx, pdf_document *doc, pdf_obj *field) +{ + pdf_obj *label = pdf_dict_get_inheritable(ctx, field, PDF_NAME(TU)); + if (!label) + label = pdf_dict_get_inheritable(ctx, field, PDF_NAME(T)); + if (label) + return pdf_to_text_string(ctx, label); + return "Text Field"; +} + void pdf_field_set_display(fz_context *ctx, pdf_document *doc, pdf_obj *field, int d) { pdf_obj *kids = pdf_dict_get(ctx, field, PDF_NAME(Kids)); -- cgit v1.2.3