summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-09-18 11:47:22 +0200
committerRobin Watts <robin.watts@artifex.com>2018-09-19 17:13:45 +0100
commit92a5b99aac65e0cfbaade191483b485fa9918641 (patch)
tree6fea6fcb5f54f0678c210f15924816437fff5ab3
parent6ff43c0f084b2ca5356ee6710b23fd751ce94749 (diff)
downloadmupdf-92a5b99aac65e0cfbaade191483b485fa9918641.tar.xz
Add accessor for field text label.
-rw-r--r--include/mupdf/pdf/field.h1
-rw-r--r--include/mupdf/pdf/name-table.h1
-rw-r--r--source/pdf/pdf-form.c10
3 files changed, 12 insertions, 0 deletions
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));