/* static utility function to get document/page attributes */ static void S_GetPageAttributes(XpContextPtr pCon,int *iorient,int *icount, int *iplex, int *ires, unsigned short *iwd, unsigned short *iht) { char *count; XpOid orient, plex; /* * Get the orientation */ orient = XpGetContentOrientation(pCon); switch (orient) { case xpoid_val_content_orientation_landscape: *iorient = 1; break; case xpoid_val_content_orientation_reverse_portrait: *iorient = 2; break; case xpoid_val_content_orientation_reverse_landscape: *iorient = 3; break; case xpoid_val_content_orientation_portrait: default: *iorient = 0; break; } /* * Get the count */ count = XpGetOneAttribute(pCon, XPDocAttr, "copy-count"); if( count ) { int ii = sscanf(count, "%d", icount); if( ii!=1 ) *icount = 1; } else *icount = 1; /* * Get the plex */ plex = XpGetPlex(pCon); switch(plex) { case xpoid_val_plex_duplex: *iplex = 1; break; case xpoid_val_plex_tumble: *iplex = 2; break; default: *iplex = 0; break; } /* * Get the resolution and media size */ *ires = XpGetResolution(pCon); XpGetMediumDimensions(pCon, iwd, iht); }
/* * PclGetMediumDimensions is installed in the GetMediumDimensions field * of each Pcl-initialized context. */ int PclGetMediumDimensions(XpContextPtr pCon, CARD16 *width, CARD16 *height) { XpGetMediumDimensions(pCon, width, height); return Success; }