summaryrefslogtreecommitdiff
path: root/xps/xpspage.c
diff options
context:
space:
mode:
Diffstat (limited to 'xps/xpspage.c')
-rw-r--r--xps/xpspage.c63
1 files changed, 33 insertions, 30 deletions
diff --git a/xps/xpspage.c b/xps/xpspage.c
index 1854b1fc..7659a1a7 100644
--- a/xps/xpspage.c
+++ b/xps/xpspage.c
@@ -2,10 +2,10 @@
#include "muxps.h"
void
-xps_parse_canvas(xps_context *ctx, fz_matrix ctm, char *base_uri, xps_resource *dict, xps_item *root)
+xps_parse_canvas(xps_context *ctx, fz_matrix ctm, char *base_uri, xps_resource *dict, xml_element *root)
{
xps_resource *new_dict = NULL;
- xps_item *node;
+ xml_element *node;
char *opacity_mask_uri;
int code;
@@ -14,22 +14,22 @@ xps_parse_canvas(xps_context *ctx, fz_matrix ctm, char *base_uri, xps_resource *
char *opacity_att;
char *opacity_mask_att;
- xps_item *transform_tag = NULL;
- xps_item *clip_tag = NULL;
- xps_item *opacity_mask_tag = NULL;
+ xml_element *transform_tag = NULL;
+ xml_element *clip_tag = NULL;
+ xml_element *opacity_mask_tag = NULL;
fz_matrix transform;
- transform_att = xps_att(root, "RenderTransform");
- clip_att = xps_att(root, "Clip");
- opacity_att = xps_att(root, "Opacity");
- opacity_mask_att = xps_att(root, "OpacityMask");
+ transform_att = xml_att(root, "RenderTransform");
+ clip_att = xml_att(root, "Clip");
+ opacity_att = xml_att(root, "Opacity");
+ opacity_mask_att = xml_att(root, "OpacityMask");
- for (node = xps_down(root); node; node = xps_next(node))
+ for (node = xml_down(root); node; node = xml_next(node))
{
- if (!strcmp(xps_tag(node), "Canvas.Resources") && xps_down(node))
+ if (!strcmp(xml_tag(node), "Canvas.Resources") && xml_down(node))
{
- code = xps_parse_resource_dictionary(ctx, &new_dict, base_uri, xps_down(node));
+ code = xps_parse_resource_dictionary(ctx, &new_dict, base_uri, xml_down(node));
if (code)
fz_catch(code, "cannot load Canvas.Resources");
else
@@ -39,12 +39,12 @@ xps_parse_canvas(xps_context *ctx, fz_matrix ctm, char *base_uri, xps_resource *
}
}
- if (!strcmp(xps_tag(node), "Canvas.RenderTransform"))
- transform_tag = xps_down(node);
- if (!strcmp(xps_tag(node), "Canvas.Clip"))
- clip_tag = xps_down(node);
- if (!strcmp(xps_tag(node), "Canvas.OpacityMask"))
- opacity_mask_tag = xps_down(node);
+ if (!strcmp(xml_tag(node), "Canvas.RenderTransform"))
+ transform_tag = xml_down(node);
+ if (!strcmp(xml_tag(node), "Canvas.Clip"))
+ clip_tag = xml_down(node);
+ if (!strcmp(xml_tag(node), "Canvas.OpacityMask"))
+ opacity_mask_tag = xml_down(node);
}
opacity_mask_uri = base_uri;
@@ -64,7 +64,7 @@ xps_parse_canvas(xps_context *ctx, fz_matrix ctm, char *base_uri, xps_resource *
xps_begin_opacity(ctx, ctm, fz_infiniterect, opacity_mask_uri, dict, opacity_att, opacity_mask_tag);
- for (node = xps_down(root); node; node = xps_next(node))
+ for (node = xml_down(root); node; node = xml_next(node))
{
xps_parse_element(ctx, ctm, base_uri, dict, node);
}
@@ -81,7 +81,7 @@ xps_parse_canvas(xps_context *ctx, fz_matrix ctm, char *base_uri, xps_resource *
void
xps_parse_fixed_page(xps_context *ctx, fz_matrix ctm, xps_page *page)
{
- xps_item *node;
+ xml_element *node;
xps_resource *dict;
char base_uri[1024];
char *s;
@@ -97,11 +97,14 @@ xps_parse_fixed_page(xps_context *ctx, fz_matrix ctm, xps_page *page)
ctx->opacity_top = 0;
ctx->opacity[0] = 1;
- for (node = xps_down(page->root); node; node = xps_next(node))
+ if (!page->root)
+ return;
+
+ for (node = xml_down(page->root); node; node = xml_next(node))
{
- if (!strcmp(xps_tag(node), "FixedPage.Resources") && xps_down(node))
+ if (!strcmp(xml_tag(node), "FixedPage.Resources") && xml_down(node))
{
- code = xps_parse_resource_dictionary(ctx, &dict, base_uri, xps_down(node));
+ code = xps_parse_resource_dictionary(ctx, &dict, base_uri, xml_down(node));
if (code)
fz_catch(code, "cannot load FixedPage.Resources");
}
@@ -118,7 +121,7 @@ int
xps_load_fixed_page(xps_context *ctx, xps_page *page)
{
xps_part *part;
- xps_item *root;
+ xml_element *root;
char *width_att;
char *height_att;
@@ -126,20 +129,20 @@ xps_load_fixed_page(xps_context *ctx, xps_page *page)
if (!part)
return fz_rethrow(-1, "cannot read zip part '%s'", page->name);
- root = xps_parse_xml(ctx, part->data, part->size);
+ root = xml_parse_document(part->data, part->size);
if (!root)
- return fz_rethrow(-1, "cannot parse xml");
+ return fz_rethrow(-1, "cannot parse xml part '%s'", page->name);
xps_free_part(ctx, part);
- if (strcmp(xps_tag(root), "FixedPage"))
- return fz_throw("expected FixedPage element (found %s)", xps_tag(root));
+ if (strcmp(xml_tag(root), "FixedPage"))
+ return fz_throw("expected FixedPage element (found %s)", xml_tag(root));
- width_att = xps_att(root, "Width");
+ width_att = xml_att(root, "Width");
if (!width_att)
return fz_throw("FixedPage missing required attribute: Width");
- height_att = xps_att(root, "Height");
+ height_att = xml_att(root, "Height");
if (!height_att)
return fz_throw("FixedPage missing required attribute: Height");