module Main (main) where import Data.Pdf.FieldReader (readPdfFields) import qualified Data.ByteString as B import Options.Applicative data Options = Options { datafile :: String } options :: Parser Options options = Options <$> strOption ( short 'f' <> long "datafile" <> metavar "DATAFILE" <> help "PDF file to read" ) main :: IO () main = run =<< execParser opts where opts = info (options <**> helper) ( fullDesc <> progDesc "Read a PDF file and print all the values in its form fields" <> header "pdfreader - a test for Data.Pdf.FieldReader" ) run :: Options -> IO() run opts = do xs <- B.readFile (datafile opts) let ys = readPdfFields xs print ys