diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2012-01-12 01:12:28 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2012-01-12 01:12:28 +0100 |
commit | 9994b3f49db7bd925a7ae7874cbc99025469ee9e (patch) | |
tree | c718919738e0c70cc94959aad1b5b4997f11389f /xps | |
parent | 09086b236af6e49f2f090f80a450b1d82f217f30 (diff) | |
download | mupdf-9994b3f49db7bd925a7ae7874cbc99025469ee9e.tar.xz |
Use the same coordinate system for pdf and xps pages in the interface.
Move coordinate space tweaks into pdf_ and xps_run_page, and provide
neutral pdf_ and xps_bound_page functions to return the page size as
a zero-origined bounding box.
Diffstat (limited to 'xps')
-rw-r--r-- | xps/muxps.h | 1 | ||||
-rw-r--r-- | xps/xps_doc.c | 10 | ||||
-rw-r--r-- | xps/xps_tile.c | 5 |
3 files changed, 16 insertions, 0 deletions
diff --git a/xps/muxps.h b/xps/muxps.h index 95b68860..96a8a1eb 100644 --- a/xps/muxps.h +++ b/xps/muxps.h @@ -105,6 +105,7 @@ void xps_free_page_list(xps_document *doc); int xps_count_pages(xps_document *doc); xps_page *xps_load_page(xps_document *doc, int number); +fz_rect xps_bound_page(xps_document *doc, xps_page *page); void xps_free_page(xps_document *doc, xps_page *page); fz_outline *xps_load_outline(xps_document *doc); diff --git a/xps/xps_doc.c b/xps/xps_doc.c index c01b7561..36903266 100644 --- a/xps/xps_doc.c +++ b/xps/xps_doc.c @@ -364,6 +364,16 @@ xps_load_page(xps_document *doc, int number) return NULL; } +fz_rect +xps_bound_page(xps_document *doc, xps_page *page) +{ + fz_rect bounds; + bounds.x0 = bounds.y0 = 0; + bounds.x1 = page->width * 72.0f / 96.0f; + bounds.y1 = page->height * 72.0f / 96.0f; + return bounds; +} + void xps_free_page(xps_document *doc, xps_page *page) { diff --git a/xps/xps_tile.c b/xps/xps_tile.c index 842e4cda..b672724b 100644 --- a/xps/xps_tile.c +++ b/xps/xps_tile.c @@ -360,6 +360,11 @@ xps_parse_fixed_page(xps_document *doc, fz_matrix ctm, xps_page *page) void xps_run_page(xps_document *doc, xps_page *page, fz_device *dev, fz_matrix ctm, fz_cookie *cookie) { + fz_matrix page_ctm; + + page_ctm = fz_scale(72.0f / 96.0f, 72.0f / 96.0f); + ctm = fz_concat(page_ctm, ctm); + doc->cookie = cookie; doc->dev = dev; xps_parse_fixed_page(doc, ctm, page); |