module Pdf.Toolbox.Document.Document
(
Document,
documentCatalog,
documentEncryption,
documentInfo
)
where
import Pdf.Toolbox.Core
import Pdf.Toolbox.Document.Monad
import Pdf.Toolbox.Document.Internal.Types
import Pdf.Toolbox.Document.Internal.Util
documentCatalog :: MonadPdf m => Document -> PdfE m Catalog
documentCatalog (Document _ dict) = do
ref <- lookupDict "Root" dict >>= fromObject
cat <- lookupObject ref >>= fromObject
ensureType "Catalog" cat
return $ Catalog ref cat
documentEncryption :: MonadPdf m => Document -> PdfE m (Maybe Dict)
documentEncryption (Document _ dict) = do
case lookupDict' "Encrypt" dict of
Nothing -> return Nothing
Just o -> do
o' <- deref o >>= fromObject
return $ Just o'
documentInfo :: MonadPdf m => Document -> PdfE m (Maybe Info)
documentInfo (Document _ dict) =
case lookupDict' "Info" dict of
Nothing -> return Nothing
Just r -> do
ref <- fromObject r
info <- lookupObject ref >>= fromObject
return $ Just $ Info ref info