import qualified Data.ByteString.Char8 as BS (readFile) import qualified Data.ByteString.Lazy.Char8 as Lazy (writeFile) import PDF (parseDocument, render) import System.Environment (getArgs) import System.IO (hPutStrLn, stderr) main :: IO () main = do [inputFile, outputFile] <- getArgs result <- parseDocument <$> BS.readFile inputFile case result of Left parseError -> hPutStrLn stderr parseError Right doc -> Lazy.writeFile outputFile $ render doc