summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-op-run.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf/pdf-op-run.c')
-rw-r--r--source/pdf/pdf-op-run.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/source/pdf/pdf-op-run.c b/source/pdf/pdf-op-run.c
index c51bb535..355e94d2 100644
--- a/source/pdf/pdf-op-run.c
+++ b/source/pdf/pdf-op-run.c
@@ -1987,14 +1987,34 @@ static void pdf_run_DP(fz_context *ctx, pdf_processor *proc, const char *tag, pd
static void pdf_run_BMC(fz_context *ctx, pdf_processor *proc, const char *tag)
{
+ pdf_run_processor *pr = (pdf_run_processor *)proc;
+
+ if (!tag)
+ tag = "UnnamedLayer";
+
+ fz_begin_layer(ctx, pr->dev, tag);
}
static void pdf_run_BDC(fz_context *ctx, pdf_processor *proc, const char *tag, pdf_obj *raw, pdf_obj *cooked)
{
+ pdf_run_processor *pr = (pdf_run_processor *)proc;
+ const char *str;
+
+ if (!tag || strcmp(tag, "OC"))
+ return;
+
+ str = pdf_to_str_buf(ctx, pdf_dict_get(ctx, cooked, PDF_NAME_Name));
+ if (str == NULL)
+ str = "UnnamedLayer";
+
+ fz_begin_layer(ctx, pr->dev, str);
}
static void pdf_run_EMC(fz_context *ctx, pdf_processor *proc)
{
+ pdf_run_processor *pr = (pdf_run_processor *)proc;
+
+ fz_end_layer(ctx, pr->dev);
}
/* compatibility */