latin_enc.py 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. #!/usr/bin/env python
  2. """ Standard encoding tables used in PDF.
  3. This table is extracted from PDF Reference Manual 1.6, pp.925
  4. "D.1 Latin Character Set and Encodings"
  5. """
  6. ENCODING = [
  7. # (name, std, mac, win, pdf)
  8. ('A', 65, 65, 65, 65),
  9. ('AE', 225, 174, 198, 198),
  10. ('Aacute', None, 231, 193, 193),
  11. ('Acircumflex', None, 229, 194, 194),
  12. ('Adieresis', None, 128, 196, 196),
  13. ('Agrave', None, 203, 192, 192),
  14. ('Aring', None, 129, 197, 197),
  15. ('Atilde', None, 204, 195, 195),
  16. ('B', 66, 66, 66, 66),
  17. ('C', 67, 67, 67, 67),
  18. ('Ccedilla', None, 130, 199, 199),
  19. ('D', 68, 68, 68, 68),
  20. ('E', 69, 69, 69, 69),
  21. ('Eacute', None, 131, 201, 201),
  22. ('Ecircumflex', None, 230, 202, 202),
  23. ('Edieresis', None, 232, 203, 203),
  24. ('Egrave', None, 233, 200, 200),
  25. ('Eth', None, None, 208, 208),
  26. ('Euro', None, None, 128, 160),
  27. ('F', 70, 70, 70, 70),
  28. ('G', 71, 71, 71, 71),
  29. ('H', 72, 72, 72, 72),
  30. ('I', 73, 73, 73, 73),
  31. ('Iacute', None, 234, 205, 205),
  32. ('Icircumflex', None, 235, 206, 206),
  33. ('Idieresis', None, 236, 207, 207),
  34. ('Igrave', None, 237, 204, 204),
  35. ('J', 74, 74, 74, 74),
  36. ('K', 75, 75, 75, 75),
  37. ('L', 76, 76, 76, 76),
  38. ('Lslash', 232, None, None, 149),
  39. ('M', 77, 77, 77, 77),
  40. ('N', 78, 78, 78, 78),
  41. ('Ntilde', None, 132, 209, 209),
  42. ('O', 79, 79, 79, 79),
  43. ('OE', 234, 206, 140, 150),
  44. ('Oacute', None, 238, 211, 211),
  45. ('Ocircumflex', None, 239, 212, 212),
  46. ('Odieresis', None, 133, 214, 214),
  47. ('Ograve', None, 241, 210, 210),
  48. ('Oslash', 233, 175, 216, 216),
  49. ('Otilde', None, 205, 213, 213),
  50. ('P', 80, 80, 80, 80),
  51. ('Q', 81, 81, 81, 81),
  52. ('R', 82, 82, 82, 82),
  53. ('S', 83, 83, 83, 83),
  54. ('Scaron', None, None, 138, 151),
  55. ('T', 84, 84, 84, 84),
  56. ('Thorn', None, None, 222, 222),
  57. ('U', 85, 85, 85, 85),
  58. ('Uacute', None, 242, 218, 218),
  59. ('Ucircumflex', None, 243, 219, 219),
  60. ('Udieresis', None, 134, 220, 220),
  61. ('Ugrave', None, 244, 217, 217),
  62. ('V', 86, 86, 86, 86),
  63. ('W', 87, 87, 87, 87),
  64. ('X', 88, 88, 88, 88),
  65. ('Y', 89, 89, 89, 89),
  66. ('Yacute', None, None, 221, 221),
  67. ('Ydieresis', None, 217, 159, 152),
  68. ('Z', 90, 90, 90, 90),
  69. ('Zcaron', None, None, 142, 153),
  70. ('a', 97, 97, 97, 97),
  71. ('aacute', None, 135, 225, 225),
  72. ('acircumflex', None, 137, 226, 226),
  73. ('acute', 194, 171, 180, 180),
  74. ('adieresis', None, 138, 228, 228),
  75. ('ae', 241, 190, 230, 230),
  76. ('agrave', None, 136, 224, 224),
  77. ('ampersand', 38, 38, 38, 38),
  78. ('aring', None, 140, 229, 229),
  79. ('asciicircum', 94, 94, 94, 94),
  80. ('asciitilde', 126, 126, 126, 126),
  81. ('asterisk', 42, 42, 42, 42),
  82. ('at', 64, 64, 64, 64),
  83. ('atilde', None, 139, 227, 227),
  84. ('b', 98, 98, 98, 98),
  85. ('backslash', 92, 92, 92, 92),
  86. ('bar', 124, 124, 124, 124),
  87. ('braceleft', 123, 123, 123, 123),
  88. ('braceright', 125, 125, 125, 125),
  89. ('bracketleft', 91, 91, 91, 91),
  90. ('bracketright', 93, 93, 93, 93),
  91. ('breve', 198, 249, None, 24),
  92. ('brokenbar', None, None, 166, 166),
  93. ('bullet', 183, 165, 149, 128),
  94. ('c', 99, 99, 99, 99),
  95. ('caron', 207, 255, None, 25),
  96. ('ccedilla', None, 141, 231, 231),
  97. ('cedilla', 203, 252, 184, 184),
  98. ('cent', 162, 162, 162, 162),
  99. ('circumflex', 195, 246, 136, 26),
  100. ('colon', 58, 58, 58, 58),
  101. ('comma', 44, 44, 44, 44),
  102. ('copyright', None, 169, 169, 169),
  103. ('currency', 168, 219, 164, 164),
  104. ('d', 100, 100, 100, 100),
  105. ('dagger', 178, 160, 134, 129),
  106. ('daggerdbl', 179, 224, 135, 130),
  107. ('degree', None, 161, 176, 176),
  108. ('dieresis', 200, 172, 168, 168),
  109. ('divide', None, 214, 247, 247),
  110. ('dollar', 36, 36, 36, 36),
  111. ('dotaccent', 199, 250, None, 27),
  112. ('dotlessi', 245, 245, None, 154),
  113. ('e', 101, 101, 101, 101),
  114. ('eacute', None, 142, 233, 233),
  115. ('ecircumflex', None, 144, 234, 234),
  116. ('edieresis', None, 145, 235, 235),
  117. ('egrave', None, 143, 232, 232),
  118. ('eight', 56, 56, 56, 56),
  119. ('ellipsis', 188, 201, 133, 131),
  120. ('emdash', 208, 209, 151, 132),
  121. ('endash', 177, 208, 150, 133),
  122. ('equal', 61, 61, 61, 61),
  123. ('eth', None, None, 240, 240),
  124. ('exclam', 33, 33, 33, 33),
  125. ('exclamdown', 161, 193, 161, 161),
  126. ('f', 102, 102, 102, 102),
  127. ('fi', 174, 222, None, 147),
  128. ('five', 53, 53, 53, 53),
  129. ('fl', 175, 223, None, 148),
  130. ('florin', 166, 196, 131, 134),
  131. ('four', 52, 52, 52, 52),
  132. ('fraction', 164, 218, None, 135),
  133. ('g', 103, 103, 103, 103),
  134. ('germandbls', 251, 167, 223, 223),
  135. ('grave', 193, 96, 96, 96),
  136. ('greater', 62, 62, 62, 62),
  137. ('guillemotleft', 171, 199, 171, 171),
  138. ('guillemotright', 187, 200, 187, 187),
  139. ('guilsinglleft', 172, 220, 139, 136),
  140. ('guilsinglright', 173, 221, 155, 137),
  141. ('h', 104, 104, 104, 104),
  142. ('hungarumlaut', 205, 253, None, 28),
  143. ('hyphen', 45, 45, 45, 45),
  144. ('i', 105, 105, 105, 105),
  145. ('iacute', None, 146, 237, 237),
  146. ('icircumflex', None, 148, 238, 238),
  147. ('idieresis', None, 149, 239, 239),
  148. ('igrave', None, 147, 236, 236),
  149. ('j', 106, 106, 106, 106),
  150. ('k', 107, 107, 107, 107),
  151. ('l', 108, 108, 108, 108),
  152. ('less', 60, 60, 60, 60),
  153. ('logicalnot', None, 194, 172, 172),
  154. ('lslash', 248, None, None, 155),
  155. ('m', 109, 109, 109, 109),
  156. ('macron', 197, 248, 175, 175),
  157. ('minus', None, None, None, 138),
  158. ('mu', None, 181, 181, 181),
  159. ('multiply', None, None, 215, 215),
  160. ('n', 110, 110, 110, 110),
  161. ('nine', 57, 57, 57, 57),
  162. ('ntilde', None, 150, 241, 241),
  163. ('numbersign', 35, 35, 35, 35),
  164. ('o', 111, 111, 111, 111),
  165. ('oacute', None, 151, 243, 243),
  166. ('ocircumflex', None, 153, 244, 244),
  167. ('odieresis', None, 154, 246, 246),
  168. ('oe', 250, 207, 156, 156),
  169. ('ogonek', 206, 254, None, 29),
  170. ('ograve', None, 152, 242, 242),
  171. ('one', 49, 49, 49, 49),
  172. ('onehalf', None, None, 189, 189),
  173. ('onequarter', None, None, 188, 188),
  174. ('onesuperior', None, None, 185, 185),
  175. ('ordfeminine', 227, 187, 170, 170),
  176. ('ordmasculine', 235, 188, 186, 186),
  177. ('oslash', 249, 191, 248, 248),
  178. ('otilde', None, 155, 245, 245),
  179. ('p', 112, 112, 112, 112),
  180. ('paragraph', 182, 166, 182, 182),
  181. ('parenleft', 40, 40, 40, 40),
  182. ('parenright', 41, 41, 41, 41),
  183. ('percent', 37, 37, 37, 37),
  184. ('period', 46, 46, 46, 46),
  185. ('periodcentered', 180, 225, 183, 183),
  186. ('perthousand', 189, 228, 137, 139),
  187. ('plus', 43, 43, 43, 43),
  188. ('plusminus', None, 177, 177, 177),
  189. ('q', 113, 113, 113, 113),
  190. ('question', 63, 63, 63, 63),
  191. ('questiondown', 191, 192, 191, 191),
  192. ('quotedbl', 34, 34, 34, 34),
  193. ('quotedblbase', 185, 227, 132, 140),
  194. ('quotedblleft', 170, 210, 147, 141),
  195. ('quotedblright', 186, 211, 148, 142),
  196. ('quoteleft', 96, 212, 145, 143),
  197. ('quoteright', 39, 213, 146, 144),
  198. ('quotesinglbase', 184, 226, 130, 145),
  199. ('quotesingle', 169, 39, 39, 39),
  200. ('r', 114, 114, 114, 114),
  201. ('registered', None, 168, 174, 174),
  202. ('ring', 202, 251, None, 30),
  203. ('s', 115, 115, 115, 115),
  204. ('scaron', None, None, 154, 157),
  205. ('section', 167, 164, 167, 167),
  206. ('semicolon', 59, 59, 59, 59),
  207. ('seven', 55, 55, 55, 55),
  208. ('six', 54, 54, 54, 54),
  209. ('slash', 47, 47, 47, 47),
  210. ('space', 32, 32, 32, 32),
  211. ('sterling', 163, 163, 163, 163),
  212. ('t', 116, 116, 116, 116),
  213. ('thorn', None, None, 254, 254),
  214. ('three', 51, 51, 51, 51),
  215. ('threequarters', None, None, 190, 190),
  216. ('threesuperior', None, None, 179, 179),
  217. ('tilde', 196, 247, 152, 31),
  218. ('trademark', None, 170, 153, 146),
  219. ('two', 50, 50, 50, 50),
  220. ('twosuperior', None, None, 178, 178),
  221. ('u', 117, 117, 117, 117),
  222. ('uacute', None, 156, 250, 250),
  223. ('ucircumflex', None, 158, 251, 251),
  224. ('udieresis', None, 159, 252, 252),
  225. ('ugrave', None, 157, 249, 249),
  226. ('underscore', 95, 95, 95, 95),
  227. ('v', 118, 118, 118, 118),
  228. ('w', 119, 119, 119, 119),
  229. ('x', 120, 120, 120, 120),
  230. ('y', 121, 121, 121, 121),
  231. ('yacute', None, None, 253, 253),
  232. ('ydieresis', None, 216, 255, 255),
  233. ('yen', 165, 180, 165, 165),
  234. ('z', 122, 122, 122, 122),
  235. ('zcaron', None, None, 158, 158),
  236. ('zero', 48, 48, 48, 48),
  237. ]