1 /* 2 * PWG media API definitions for CUPS. 3 * 4 * Copyright 2009-2017 by Apple Inc. 5 * 6 * Licensed under Apache License v2.0. See the file "LICENSE" for more information. 7 */ 8 9 #ifndef _CUPS_PWG_H_ 10 # define _CUPS_PWG_H_ 11 12 13 /* 14 * C++ magic... 15 */ 16 17 # ifdef __cplusplus 18 extern "C" { 19 # endif /* __cplusplus */ 20 21 22 /* 23 * Macros... 24 */ 25 26 /* Convert from points to hundredths of millimeters */ 27 # define PWG_FROM_POINTS(n) (int)(((n) * 2540 + 36) / 72) 28 /* Convert from hundredths of millimeters to points */ 29 # define PWG_TO_POINTS(n) ((n) * 72.0 / 2540.0) 30 31 32 /* 33 * Types and structures... 34 */ 35 36 typedef struct pwg_map_s /**** Map element - PPD to/from PWG @exclude all@ */ 37 { 38 char *pwg, /* PWG media keyword */ 39 *ppd; /* PPD option keyword */ 40 } pwg_map_t; 41 42 typedef struct pwg_media_s /**** Common media size data ****/ 43 { 44 const char *pwg, /* PWG 5101.1 "self describing" name */ 45 *legacy, /* IPP/ISO legacy name */ 46 *ppd; /* Standard Adobe PPD name */ 47 int width, /* Width in 2540ths */ 48 length; /* Length in 2540ths */ 49 } pwg_media_t; 50 51 typedef struct pwg_size_s /**** Size element - PPD to/from PWG @exclude all@ */ 52 { 53 pwg_map_t map; /* Map element */ 54 int width, /* Width in 2540ths */ 55 length, /* Length in 2540ths */ 56 left, /* Left margin in 2540ths */ 57 bottom, /* Bottom margin in 2540ths */ 58 right, /* Right margin in 2540ths */ 59 top; /* Top margin in 2540ths */ 60 } pwg_size_t; 61 62 63 /* 64 * Functions... 65 */ 66 67 extern int pwgFormatSizeName(char *keyword, size_t keysize, 68 const char *prefix, const char *name, 69 int width, int length, 70 const char *units) _CUPS_API_1_7; 71 extern int pwgInitSize(pwg_size_t *size, ipp_t *job, 72 int *margins_set) _CUPS_API_1_7; 73 extern pwg_media_t *pwgMediaForLegacy(const char *legacy) _CUPS_API_1_7; 74 extern pwg_media_t *pwgMediaForPPD(const char *ppd) _CUPS_API_1_7; 75 extern pwg_media_t *pwgMediaForPWG(const char *pwg) _CUPS_API_1_7; 76 extern pwg_media_t *pwgMediaForSize(int width, int length) _CUPS_API_1_7; 77 78 # ifdef __cplusplus 79 } 80 # endif /* __cplusplus */ 81 82 #endif /* !_CUPS_PWG_H_ */ 83