packages feed

hpdft-0.4.6.3: src/PDF/Character.hs

{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE OverloadedStrings #-}

module PDF.Character
       ( pdfcharmap
       , extendedAscii
       , adobeJapanOneSixMap
       , cp932Map
       , jisx0208Map) where

import qualified Data.Text as T
import qualified Data.Map as Map
import qualified Data.ByteString.Lazy as BSL
import qualified Data.ByteString.Lazy.UTF8 as BSLU
import Data.FileEmbed
import Codec.Compression.GZip (decompress)
import Data.Binary (decode)

pdfcharmap = Map.fromList pdfchardict 

extendedAscii = Map.fromList extendedasciidict

adobeJapanOneSixMap :: Map.Map Int BSLU.ByteString
adobeJapanOneSixMap = decode . decompress . BSL.fromChunks . (:[]) $ $(embedFile "data/map/Adobe-Japan1-6.map")

cp932Map :: Map.Map Int BSLU.ByteString
cp932Map = decode . decompress . BSL.fromChunks . (:[]) $ $(embedFile "data/map/cp932.map")

jisx0208Map :: Map.Map Int BSLU.ByteString
jisx0208Map = decode . decompress . BSL.fromChunks . (:[]) $ $(embedFile "data/map/jisx0208.map")

extendedasciidict :: [(Int, Char)]
extendedasciidict =
  [ (128, '€')
  , (129, ' ')
  , (130, '‚')
  , (131, 'ƒ')
  , (132, '„')
  , (133, '…')
  , (134, '†')
  , (135, '‡')
  , (136, 'ˆ')
  , (137, '‰')
  , (138, 'Š')
  , (139, '‹')
  , (140, 'Œ')
  , (141, ' ')
  , (142, 'Ž')
  , (143, ' ')
  , (144, ' ')
  , (145, '‘')
  , (146, '’')
  , (147, '“')
  , (148, '”')
  , (149, '•')
  , (150, '–')
  , (151, '—')
  , (152, '˜')
  , (153, '™')
  , (154, 'š')
  , (155, '›')
  , (156, 'œ')
  , (157, ' ')
  , (158, 'ž')
  , (159, 'Ÿ')
  , (160, ' ')
  , (161, '¡')
  , (162, '¢')
  , (163, '£')
  , (164, '¤')
  , (165, '¥')
  , (166, '¦')
  , (167, '§')
  , (168, '¨')
  , (169, '©')
  , (170, 'ª')
  , (171, '«')
  , (172, '¬')
  , (173, '-')
  , (174, '®')
  , (175, '¯')
  , (176, '°')
  , (177, '±')
  , (178, '²')
  , (179, '³')
  , (180, '´')
  , (181, 'µ')
  , (182, '¶')
  , (183, '·')
  , (184, '¸')
  , (185, '¹')
  , (186, 'º')
  , (187, '»')
  , (188, '¼')
  , (189, '½')
  , (190, '¾')
  , (191, '¿')
  , (192, 'À')
  , (193, 'Á')
  , (194, 'Â')
  , (195, 'Ã')
  , (196, 'Ä')
  , (197, 'Å')
  , (198, 'Æ')
  , (199, 'Ç')
  , (200, 'È')
  , (201, 'É')
  , (202, 'Ê')
  , (203, 'Ë')
  , (204, 'Ì')
  , (205, 'Í')
  , (206, 'Î')
  , (207, 'Ï')
  , (208, 'Ð')
  , (209, 'Ñ')
  , (210, 'Ò')
  , (211, 'Ó')
  , (212, 'Ô')
  , (213, 'Õ')
  , (214, 'Ö')
  , (215, '×')
  , (216, 'Ø')
  , (217, 'Ù')
  , (218, 'Ú')
  , (219, 'Û')
  , (220, 'Ü')
  , (221, 'Ý')
  , (222, 'Þ')
  , (223, 'ß')
  , (224, 'à')
  , (225, 'á')
  , (226, 'â')
  , (227, 'ã')
  , (228, 'ä')
  , (229, 'å')
  , (230, 'æ')
  , (231, 'ç')
  , (232, 'è')
  , (233, 'é')
  , (234, 'ê')
  , (235, 'ë')
  , (236, 'ì')
  , (237, 'í')
  , (238, 'î')
  , (239, 'ï')
  , (240, 'ð')
  , (241, 'ñ')
  , (242, 'ò')
  , (243, 'ó')
  , (244, 'ô')
  , (245, 'õ')
  , (246, 'ö')
  , (247, '÷')
  , (248, 'ø')
  , (249, 'ù')
  , (250, 'ú')
  , (251, 'û')
  , (252, 'ü')
  , (253, 'ý')
  , (254, 'þ')
  , (255, 'ÿ')
  ]

pdfchardict :: [(String, T.Text)]
pdfchardict =
 [ ("/A","A")
 , ("/AE","Æ")
 , ("/Aacute","Á")
 , ("/Acircumflex","Â")
 , ("/Adieresis","Ä")
 , ("/Aring","Å")
 , ("/Atilde","Ã")
 , ("/B","B")
 , ("/C","C")
 , ("/Ccedilla","Ç")
 , ("/D","D")
 , ("/E","E")
 , ("/Eacute","É")
 , ("/Ecircumflex","Ê")
 , ("/Edieresis","Ë")
 , ("/Egrave","È")
 , ("/Eth","Ð")
 , ("/Euro","€")
 , ("/F","F")
 , ("/G","G")
 , ("/H","H")
 , ("/I","I")
 , ("/Iacute","Í")
 , ("/Icircumflex","Î")
 , ("/Idieresis","Ï")
 , ("/Igrave","Ì")
 , ("/J","J")
 , ("/K","K")
 , ("/L","L")
 , ("/Lslash","Ł")
 , ("/M","M")
 , ("/N","N")
 , ("/Ntilde","Ñ")
 , ("/O","O")
 , ("/OE","OE")
 , ("/Oacute","Ó")
 , ("/Ocircumflex","Ô")
 , ("/Odieresis","Ö")
 , ("/Ograve","Ò")
 , ("/Oslash","Ø")
 , ("/Otilde","Õ")
 , ("/P","P")
 , ("/Q","Q")
 , ("/R","R")
 , ("/S","S")
 , ("/Scaron","Š")
 , ("/T","T")
 , ("/Thorn","Þ")
 , ("/U","U")
 , ("/Uacute","Ú")
 , ("/Ucircumflex","Û")
 , ("/Udieresis","Ü")
 , ("/Ugrave","Ù")
 , ("/V","V")
 , ("/W","W")
 , ("/X","X")
 , ("/Y","Y")
 , ("/Yacute","Ý")
 , ("/Ydieresis","Ÿ")
 , ("/Z","Z")
 , ("/Zcaron","Ž")
 , ("/a","a")
 , ("/aacute","á")
 , ("/acircumflex","â")
 , ("/acute","´")
 , ("/adieresis","ä")
 , ("/ae","æ")
 , ("/agrave","à")
 , ("/ampersand","&")
 , ("/aring","å")
 , ("/asciicircum","^")
 , ("/asciitilde","~")
 , ("/asterisk","*")
 , ("/at","@")
 , ("/atilde ","ã")
 , ("/b","b")
 , ("/backslash","\\")
 , ("/bar","|")
 , ("/braceleft","{")
 , ("/braceright","}")
 , ("/bracketleft","[")
 , ("/bracketright","]")
 , ("/breve","˘")
 , ("/brokenbar","¦")
 , ("/bullet","•")
 , ("/c","c")
 , ("/caron","ˇ")
 , ("/ccedilla ","ç")
 , ("/cedilla","¸")
 , ("/cent","¢")
 , ("/circumflex","ˆ")
 , ("/colon",":")
 , ("/comma",",")
 , ("/copyright","©")
 , ("/circlecopyrt","©")
 , ("/currency","¤")
 , ("/d","d")
 , ("/dagger","†")
 , ("/daggerdb","‡")
 , ("/degree","°")
 , ("/dieresis","¨")
 , ("/divide","÷")
 , ("/dollar","$")
 , ("/dotaccent","˙")
 , ("/dotlessi","ı")
 , ("/e","e")
 , ("/eacute","é")
 , ("/ecircumflex","ê")
 , ("/edieresis","ë")
 , ("/egrave","è")
 , ("/eight","8")
 , ("/ellipsis","…")
 , ("/emdash","—")
 , ("/endash","–")
 , ("/equal","=")
 , ("/eth","ð")
 , ("/exclam","!")
 , ("/exclamdown","¡")
 , ("/f","f")
 , ("/ff","ff")
 , ("/ffi","ffi")
 , ("/ffl","ffl")
 , ("/fi","fi")
 , ("/five","5")
 , ("/fl","fl")
 , ("/florin","ƒ")
 , ("/four","4")
 , ("/fraction","⁄")
 , ("/g","g")
 , ("/germandbls","ß")
 , ("/grave","`")
 , ("/greater",">")
 , ("/guillemotleft","«")
 , ("/guillemotright","»")
 , ("/guilsinglleft","‹")
 , ("/guilsinglright","›")
 , ("/h","h")
 , ("/hungarumlaut","˝")
 , ("/hyphen","-")
 , ("/i","i")
 , ("/iacute","í")
 , ("/icircumflex","î")
 , ("/idieresis","ï")
 , ("/igrave","ì")
 , ("/j","j")
 , ("/k","k")
 , ("/l","l")
 , ("/less","<")
 , ("/logicalnot","¬")
 , ("/lslash","ł")
 , ("/m","m")
 , ("/macron","¯")
 , ("/minus","−")
 , ("/mu","μ")
 , ("/multiply","×")
 , ("/n","n")
 , ("/nine","9")
 , ("/ntilde","ñ")
 , ("/numbersign","#")
 , ("/o","o")
 , ("/oacute","ó")
 , ("/ocircumflex","ô")
 , ("/odieresis","ö")
 , ("/oe","oe")
 , ("/ogonek","˛")
 , ("/ograve","ò")
 , ("/one","1")
 , ("/onehalf","½")
 , ("/onequarter","¼")
 , ("/onesuperior","¹")
 , ("/ordfeminine","ª")
 , ("/ordmasculine","º")
 , ("/oslash","ø")
 , ("/otilde","õ")
 , ("/p","p")
 , ("/paragraph","¶")
 , ("/parenleft","(")
 , ("/parenright",")")
 , ("/percent","%")
 , ("/period",".")
 , ("/periodcentered","·")
 , ("/perthousand","‰")
 , ("/plus","+")
 , ("/plusminus ","±")
 , ("/q","q")
 , ("/question","?")
 , ("/questiondown","¿")
 , ("/quotedbl","\"")
 , ("/quotedblbase","„")
 , ("/quotedblleft","“")
 , ("/quotedblright","”")
 , ("/quoteleft","‘")
 , ("/quoteright","’")
 , ("/quotesinglbase","‚")
 , ("/quotesingle","'")
 , ("/r","r")
 , ("/registered","®")
 , ("/ring","˚")
 , ("/s","s")
 , ("/scaron","š")
 , ("/section","§")
 , ("/semicolon",";")
 , ("/seven","7")
 , ("/six","6")
 , ("/slash","/")
 , ("/space"," ")
 , ("/sterling","£")
 , ("/t","t")
 , ("/thorn","þ")
 , ("/three","3")
 , ("/threequarters","¾")
 , ("/threesuperior","³")
 , ("/tilde","˜")
 , ("/trademark","™")
 , ("/two","2")
 , ("/twosuperior","²")
 , ("/u","u")
 , ("/uacute","ú")
 , ("/ucircumflex","û")
 , ("/udieresis","ü")
 , ("/ugrave","ù")
 , ("/underscore","_")
 , ("/v","v")
 , ("/w","w")
 , ("/x","x")
 , ("/y","y")
 , ("/yacute","ý")
 , ("/ydieresis","ÿ")
 , ("/yen","¥")
 , ("/z","z")
 , ("/zcaron","ž")
 , ("/zero","0")
 , ("/Alpha","Α")
 , ("/Beta","Β")
 , ("/Chi","Χ")
 , ("/Delta","Δ")
 , ("/Epsilon","Ε")
 , ("/Eta","Η")
 , ("/Euro","€")
 , ("/Gamma","Γ")
 , ("/Iota","Ι")
 , ("/Kappa","Κ")
 , ("/Lambda","Λ")
 , ("/Mu","Μ")
 , ("/Nu","Ν")
 , ("/Omega","Ω")
 , ("/Omicron","Ο")
 , ("/Phi","Φ")
 , ("/Pi","Π")
 , ("/Psi","Ψ")
 , ("/Rho","Ρ")
 , ("/Sigma","Σ")
 , ("/Tau","Τ")
 , ("/Theta","Θ")
 , ("/Upsilon","Υ")
 , ("/Xi","Ξ")
 , ("/Zeta","Ζ")
 , ("/aleph","ℵ")
 , ("/alpha","α")
 , ("/ampersand","&")
 , ("/angle","∠")
 , ("/angleleft","〈")
 , ("/angleright","〉")
 , ("/approxequal","≈")
 , ("/arrowdblboth","⇔")
 , ("/arrowdblleft","⇒")
 , ("/asteriskmath","*")
 , ("/bar","|")
 , ("/beta","β")
 , ("/braceleft","{")
 , ("/braceright","}")
 , ("/chi","χ")
 , ("/delta","δ")
 , ("/epsilon","ε")
 , ("/eta","η")
 , ("/gamma","γ")
 , ("/iota","ι")
 , ("/kappa","κ")
 , ("/lambda","λ")
 , ("/mu","μ")
 , ("/nu","ν")
 , ("/omega","ω")
 , ("/omicron","ο")
 , ("/phi","φ")
 , ("/pi","π")
 , ("/psi","ψ")
 , ("/rho","ρ")
 , ("/sigma","σ")
 , ("/tau","τ")
 , ("/theta","θ")
 , ("/upsilon","υ")
 , ("/xi","ξ")
 , ("/zeta","ζ")
 , ("/existential","∃")
 , ("/universal","∀")
 , ("/partialdiff","∂")
 , ("/equal","=")
 , ("/infinity","∞")
 , ("/integral","∫")
 , ("/sharp","♯")
 ]