33 lines
1.3 KiB
Haskell
33 lines
1.3 KiB
Haskell
module PDF.Content.Operator.Text (
|
|
Operator(..)
|
|
, signature
|
|
) where
|
|
|
|
import PDF.Content.Operator.Common (Signature)
|
|
import PDF.Object (DirectObject(..))
|
|
|
|
data Operator =
|
|
Td | TD | Tm | Tstar -- text positioning
|
|
| TJ | Tj | Quote | DQuote -- text showing
|
|
| Tc | Tw | Tz | TL | Tf | Tr | Ts -- text state
|
|
deriving (Bounded, Enum, Show)
|
|
|
|
signature :: [Signature Operator]
|
|
signature = [
|
|
(Td, \l -> case l of [_, _] -> True ; _ -> False)
|
|
, (TD, \l -> case l of [_, _] -> True ; _ -> False)
|
|
, (Tm, \l -> case l of [_, _, _, _, _, _] -> True ; _ -> False)
|
|
, (Tstar, \l -> case l of [] -> True ; _ -> False)
|
|
, (TJ, \l -> case l of [Array _] -> True ; _ -> False)
|
|
, (Tj, \l -> case l of [StringObject _] -> True ; _ -> False)
|
|
, (Quote, \l -> case l of [StringObject _] -> True ; _ -> False)
|
|
, (DQuote, \l -> case l of [StringObject _] -> True ; _ -> False)
|
|
, (Tc, \l -> case l of [_] -> True ; _ -> False)
|
|
, (Tw, \l -> case l of [_] -> True ; _ -> False)
|
|
, (Tz, \l -> case l of [_] -> True ; _ -> False)
|
|
, (TL, \l -> case l of [_] -> True ; _ -> False)
|
|
, (Tf, \l -> case l of [NameObject _, _] -> True ; _ -> False)
|
|
, (Tr, \l -> case l of [_] -> True ; _ -> False)
|
|
, (Ts, \l -> case l of [_] -> True ; _ -> False)
|
|
]
|