module GI.Poppler.Objects.Document
(
Document(..) ,
DocumentK ,
toDocument ,
noDocument ,
documentFindDest ,
documentGetAttachments ,
documentGetAuthor ,
documentGetCreationDate ,
documentGetCreator ,
documentGetFormField ,
documentGetId ,
documentGetKeywords ,
documentGetMetadata ,
documentGetModificationDate ,
documentGetNAttachments ,
documentGetNPages ,
documentGetPage ,
documentGetPageByLabel ,
documentGetPageLayout ,
documentGetPageMode ,
documentGetPdfVersion ,
documentGetPdfVersionString ,
documentGetPermissions ,
documentGetProducer ,
documentGetSubject ,
documentGetTitle ,
documentHasAttachments ,
documentIsLinearized ,
documentNewFromData ,
documentNewFromFile ,
documentNewFromGfile ,
documentNewFromStream ,
documentSave ,
documentSaveACopy ,
DocumentAuthorPropertyInfo ,
getDocumentAuthor ,
DocumentCreationDatePropertyInfo ,
getDocumentCreationDate ,
DocumentCreatorPropertyInfo ,
getDocumentCreator ,
DocumentFormatPropertyInfo ,
getDocumentFormat ,
DocumentFormatMajorPropertyInfo ,
getDocumentFormatMajor ,
DocumentFormatMinorPropertyInfo ,
getDocumentFormatMinor ,
DocumentKeywordsPropertyInfo ,
getDocumentKeywords ,
DocumentLinearizedPropertyInfo ,
getDocumentLinearized ,
DocumentMetadataPropertyInfo ,
getDocumentMetadata ,
DocumentModDatePropertyInfo ,
getDocumentModDate ,
DocumentPageLayoutPropertyInfo ,
getDocumentPageLayout ,
DocumentPageModePropertyInfo ,
getDocumentPageMode ,
DocumentPermissionsPropertyInfo ,
getDocumentPermissions ,
DocumentProducerPropertyInfo ,
getDocumentProducer ,
DocumentSubjectPropertyInfo ,
getDocumentSubject ,
DocumentTitlePropertyInfo ,
getDocumentTitle ,
DocumentViewerPreferencesPropertyInfo ,
getDocumentViewerPreferences ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Poppler.Types
import GI.Poppler.Callbacks
import qualified GI.GObject as GObject
import qualified GI.Gio as Gio
newtype Document = Document (ForeignPtr Document)
foreign import ccall "poppler_document_get_type"
c_poppler_document_get_type :: IO GType
type instance ParentTypes Document = DocumentParentTypes
type DocumentParentTypes = '[GObject.Object]
instance GObject Document where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_poppler_document_get_type
class GObject o => DocumentK o
instance (GObject o, IsDescendantOf Document o) => DocumentK o
toDocument :: DocumentK o => o -> IO Document
toDocument = unsafeCastTo Document
noDocument :: Maybe Document
noDocument = Nothing
getDocumentAuthor :: (MonadIO m, DocumentK o) => o -> m T.Text
getDocumentAuthor obj = liftIO $ getObjectPropertyString obj "author"
data DocumentAuthorPropertyInfo
instance AttrInfo DocumentAuthorPropertyInfo where
type AttrAllowedOps DocumentAuthorPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentAuthorPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentAuthorPropertyInfo = DocumentK
type AttrGetType DocumentAuthorPropertyInfo = T.Text
type AttrLabel DocumentAuthorPropertyInfo = "Document::author"
attrGet _ = getDocumentAuthor
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentCreationDate :: (MonadIO m, DocumentK o) => o -> m Int32
getDocumentCreationDate obj = liftIO $ getObjectPropertyCInt obj "creation-date"
data DocumentCreationDatePropertyInfo
instance AttrInfo DocumentCreationDatePropertyInfo where
type AttrAllowedOps DocumentCreationDatePropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentCreationDatePropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentCreationDatePropertyInfo = DocumentK
type AttrGetType DocumentCreationDatePropertyInfo = Int32
type AttrLabel DocumentCreationDatePropertyInfo = "Document::creation-date"
attrGet _ = getDocumentCreationDate
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentCreator :: (MonadIO m, DocumentK o) => o -> m T.Text
getDocumentCreator obj = liftIO $ getObjectPropertyString obj "creator"
data DocumentCreatorPropertyInfo
instance AttrInfo DocumentCreatorPropertyInfo where
type AttrAllowedOps DocumentCreatorPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentCreatorPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentCreatorPropertyInfo = DocumentK
type AttrGetType DocumentCreatorPropertyInfo = T.Text
type AttrLabel DocumentCreatorPropertyInfo = "Document::creator"
attrGet _ = getDocumentCreator
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentFormat :: (MonadIO m, DocumentK o) => o -> m T.Text
getDocumentFormat obj = liftIO $ getObjectPropertyString obj "format"
data DocumentFormatPropertyInfo
instance AttrInfo DocumentFormatPropertyInfo where
type AttrAllowedOps DocumentFormatPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentFormatPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentFormatPropertyInfo = DocumentK
type AttrGetType DocumentFormatPropertyInfo = T.Text
type AttrLabel DocumentFormatPropertyInfo = "Document::format"
attrGet _ = getDocumentFormat
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentFormatMajor :: (MonadIO m, DocumentK o) => o -> m Word32
getDocumentFormatMajor obj = liftIO $ getObjectPropertyCUInt obj "format-major"
data DocumentFormatMajorPropertyInfo
instance AttrInfo DocumentFormatMajorPropertyInfo where
type AttrAllowedOps DocumentFormatMajorPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentFormatMajorPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentFormatMajorPropertyInfo = DocumentK
type AttrGetType DocumentFormatMajorPropertyInfo = Word32
type AttrLabel DocumentFormatMajorPropertyInfo = "Document::format-major"
attrGet _ = getDocumentFormatMajor
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentFormatMinor :: (MonadIO m, DocumentK o) => o -> m Word32
getDocumentFormatMinor obj = liftIO $ getObjectPropertyCUInt obj "format-minor"
data DocumentFormatMinorPropertyInfo
instance AttrInfo DocumentFormatMinorPropertyInfo where
type AttrAllowedOps DocumentFormatMinorPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentFormatMinorPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentFormatMinorPropertyInfo = DocumentK
type AttrGetType DocumentFormatMinorPropertyInfo = Word32
type AttrLabel DocumentFormatMinorPropertyInfo = "Document::format-minor"
attrGet _ = getDocumentFormatMinor
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentKeywords :: (MonadIO m, DocumentK o) => o -> m T.Text
getDocumentKeywords obj = liftIO $ getObjectPropertyString obj "keywords"
data DocumentKeywordsPropertyInfo
instance AttrInfo DocumentKeywordsPropertyInfo where
type AttrAllowedOps DocumentKeywordsPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentKeywordsPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentKeywordsPropertyInfo = DocumentK
type AttrGetType DocumentKeywordsPropertyInfo = T.Text
type AttrLabel DocumentKeywordsPropertyInfo = "Document::keywords"
attrGet _ = getDocumentKeywords
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentLinearized :: (MonadIO m, DocumentK o) => o -> m Bool
getDocumentLinearized obj = liftIO $ getObjectPropertyBool obj "linearized"
data DocumentLinearizedPropertyInfo
instance AttrInfo DocumentLinearizedPropertyInfo where
type AttrAllowedOps DocumentLinearizedPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentLinearizedPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentLinearizedPropertyInfo = DocumentK
type AttrGetType DocumentLinearizedPropertyInfo = Bool
type AttrLabel DocumentLinearizedPropertyInfo = "Document::linearized"
attrGet _ = getDocumentLinearized
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentMetadata :: (MonadIO m, DocumentK o) => o -> m T.Text
getDocumentMetadata obj = liftIO $ getObjectPropertyString obj "metadata"
data DocumentMetadataPropertyInfo
instance AttrInfo DocumentMetadataPropertyInfo where
type AttrAllowedOps DocumentMetadataPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentMetadataPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentMetadataPropertyInfo = DocumentK
type AttrGetType DocumentMetadataPropertyInfo = T.Text
type AttrLabel DocumentMetadataPropertyInfo = "Document::metadata"
attrGet _ = getDocumentMetadata
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentModDate :: (MonadIO m, DocumentK o) => o -> m Int32
getDocumentModDate obj = liftIO $ getObjectPropertyCInt obj "mod-date"
data DocumentModDatePropertyInfo
instance AttrInfo DocumentModDatePropertyInfo where
type AttrAllowedOps DocumentModDatePropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentModDatePropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentModDatePropertyInfo = DocumentK
type AttrGetType DocumentModDatePropertyInfo = Int32
type AttrLabel DocumentModDatePropertyInfo = "Document::mod-date"
attrGet _ = getDocumentModDate
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentPageLayout :: (MonadIO m, DocumentK o) => o -> m PageLayout
getDocumentPageLayout obj = liftIO $ getObjectPropertyEnum obj "page-layout"
data DocumentPageLayoutPropertyInfo
instance AttrInfo DocumentPageLayoutPropertyInfo where
type AttrAllowedOps DocumentPageLayoutPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentPageLayoutPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentPageLayoutPropertyInfo = DocumentK
type AttrGetType DocumentPageLayoutPropertyInfo = PageLayout
type AttrLabel DocumentPageLayoutPropertyInfo = "Document::page-layout"
attrGet _ = getDocumentPageLayout
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentPageMode :: (MonadIO m, DocumentK o) => o -> m PageMode
getDocumentPageMode obj = liftIO $ getObjectPropertyEnum obj "page-mode"
data DocumentPageModePropertyInfo
instance AttrInfo DocumentPageModePropertyInfo where
type AttrAllowedOps DocumentPageModePropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentPageModePropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentPageModePropertyInfo = DocumentK
type AttrGetType DocumentPageModePropertyInfo = PageMode
type AttrLabel DocumentPageModePropertyInfo = "Document::page-mode"
attrGet _ = getDocumentPageMode
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentPermissions :: (MonadIO m, DocumentK o) => o -> m [Permissions]
getDocumentPermissions obj = liftIO $ getObjectPropertyFlags obj "permissions"
data DocumentPermissionsPropertyInfo
instance AttrInfo DocumentPermissionsPropertyInfo where
type AttrAllowedOps DocumentPermissionsPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentPermissionsPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentPermissionsPropertyInfo = DocumentK
type AttrGetType DocumentPermissionsPropertyInfo = [Permissions]
type AttrLabel DocumentPermissionsPropertyInfo = "Document::permissions"
attrGet _ = getDocumentPermissions
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentProducer :: (MonadIO m, DocumentK o) => o -> m T.Text
getDocumentProducer obj = liftIO $ getObjectPropertyString obj "producer"
data DocumentProducerPropertyInfo
instance AttrInfo DocumentProducerPropertyInfo where
type AttrAllowedOps DocumentProducerPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentProducerPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentProducerPropertyInfo = DocumentK
type AttrGetType DocumentProducerPropertyInfo = T.Text
type AttrLabel DocumentProducerPropertyInfo = "Document::producer"
attrGet _ = getDocumentProducer
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentSubject :: (MonadIO m, DocumentK o) => o -> m T.Text
getDocumentSubject obj = liftIO $ getObjectPropertyString obj "subject"
data DocumentSubjectPropertyInfo
instance AttrInfo DocumentSubjectPropertyInfo where
type AttrAllowedOps DocumentSubjectPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentSubjectPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentSubjectPropertyInfo = DocumentK
type AttrGetType DocumentSubjectPropertyInfo = T.Text
type AttrLabel DocumentSubjectPropertyInfo = "Document::subject"
attrGet _ = getDocumentSubject
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentTitle :: (MonadIO m, DocumentK o) => o -> m T.Text
getDocumentTitle obj = liftIO $ getObjectPropertyString obj "title"
data DocumentTitlePropertyInfo
instance AttrInfo DocumentTitlePropertyInfo where
type AttrAllowedOps DocumentTitlePropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentTitlePropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentTitlePropertyInfo = DocumentK
type AttrGetType DocumentTitlePropertyInfo = T.Text
type AttrLabel DocumentTitlePropertyInfo = "Document::title"
attrGet _ = getDocumentTitle
attrSet _ = undefined
attrConstruct _ = undefined
getDocumentViewerPreferences :: (MonadIO m, DocumentK o) => o -> m [ViewerPreferences]
getDocumentViewerPreferences obj = liftIO $ getObjectPropertyFlags obj "viewer-preferences"
data DocumentViewerPreferencesPropertyInfo
instance AttrInfo DocumentViewerPreferencesPropertyInfo where
type AttrAllowedOps DocumentViewerPreferencesPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint DocumentViewerPreferencesPropertyInfo = (~) ()
type AttrBaseTypeConstraint DocumentViewerPreferencesPropertyInfo = DocumentK
type AttrGetType DocumentViewerPreferencesPropertyInfo = [ViewerPreferences]
type AttrLabel DocumentViewerPreferencesPropertyInfo = "Document::viewer-preferences"
attrGet _ = getDocumentViewerPreferences
attrSet _ = undefined
attrConstruct _ = undefined
type instance AttributeList Document = DocumentAttributeList
type DocumentAttributeList = ('[ '("author", DocumentAuthorPropertyInfo), '("creation-date", DocumentCreationDatePropertyInfo), '("creator", DocumentCreatorPropertyInfo), '("format", DocumentFormatPropertyInfo), '("format-major", DocumentFormatMajorPropertyInfo), '("format-minor", DocumentFormatMinorPropertyInfo), '("keywords", DocumentKeywordsPropertyInfo), '("linearized", DocumentLinearizedPropertyInfo), '("metadata", DocumentMetadataPropertyInfo), '("mod-date", DocumentModDatePropertyInfo), '("page-layout", DocumentPageLayoutPropertyInfo), '("page-mode", DocumentPageModePropertyInfo), '("permissions", DocumentPermissionsPropertyInfo), '("producer", DocumentProducerPropertyInfo), '("subject", DocumentSubjectPropertyInfo), '("title", DocumentTitlePropertyInfo), '("viewer-preferences", DocumentViewerPreferencesPropertyInfo)] :: [(Symbol, *)])
type instance SignalList Document = DocumentSignalList
type DocumentSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "poppler_document_new_from_data" poppler_document_new_from_data ::
CString ->
Int32 ->
CString ->
Ptr (Ptr GError) ->
IO (Ptr Document)
documentNewFromData ::
(MonadIO m) =>
T.Text ->
Int32 ->
Maybe (T.Text) ->
m Document
documentNewFromData data_ length_ password = liftIO $ do
data_' <- textToCString data_
maybePassword <- case password of
Nothing -> return nullPtr
Just jPassword -> do
jPassword' <- textToCString jPassword
return jPassword'
onException (do
result <- propagateGError $ poppler_document_new_from_data data_' length_ maybePassword
checkUnexpectedReturnNULL "poppler_document_new_from_data" result
result' <- (wrapObject Document) result
freeMem data_'
freeMem maybePassword
return result'
) (do
freeMem data_'
freeMem maybePassword
)
foreign import ccall "poppler_document_new_from_file" poppler_document_new_from_file ::
CString ->
CString ->
Ptr (Ptr GError) ->
IO (Ptr Document)
documentNewFromFile ::
(MonadIO m) =>
T.Text ->
Maybe (T.Text) ->
m Document
documentNewFromFile uri password = liftIO $ do
uri' <- textToCString uri
maybePassword <- case password of
Nothing -> return nullPtr
Just jPassword -> do
jPassword' <- textToCString jPassword
return jPassword'
onException (do
result <- propagateGError $ poppler_document_new_from_file uri' maybePassword
checkUnexpectedReturnNULL "poppler_document_new_from_file" result
result' <- (wrapObject Document) result
freeMem uri'
freeMem maybePassword
return result'
) (do
freeMem uri'
freeMem maybePassword
)
foreign import ccall "poppler_document_new_from_gfile" poppler_document_new_from_gfile ::
Ptr Gio.File ->
CString ->
Ptr Gio.Cancellable ->
Ptr (Ptr GError) ->
IO (Ptr Document)
documentNewFromGfile ::
(MonadIO m, Gio.FileK a, Gio.CancellableK b) =>
a ->
Maybe (T.Text) ->
Maybe (b) ->
m Document
documentNewFromGfile file password cancellable = liftIO $ do
let file' = unsafeManagedPtrCastPtr file
maybePassword <- case password of
Nothing -> return nullPtr
Just jPassword -> do
jPassword' <- textToCString jPassword
return jPassword'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
let jCancellable' = unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
result <- propagateGError $ poppler_document_new_from_gfile file' maybePassword maybeCancellable
checkUnexpectedReturnNULL "poppler_document_new_from_gfile" result
result' <- (wrapObject Document) result
touchManagedPtr file
whenJust cancellable touchManagedPtr
freeMem maybePassword
return result'
) (do
freeMem maybePassword
)
foreign import ccall "poppler_document_new_from_stream" poppler_document_new_from_stream ::
Ptr Gio.InputStream ->
Int64 ->
CString ->
Ptr Gio.Cancellable ->
Ptr (Ptr GError) ->
IO (Ptr Document)
documentNewFromStream ::
(MonadIO m, Gio.InputStreamK a, Gio.CancellableK b) =>
a ->
Int64 ->
Maybe (T.Text) ->
Maybe (b) ->
m Document
documentNewFromStream stream length_ password cancellable = liftIO $ do
let stream' = unsafeManagedPtrCastPtr stream
maybePassword <- case password of
Nothing -> return nullPtr
Just jPassword -> do
jPassword' <- textToCString jPassword
return jPassword'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
let jCancellable' = unsafeManagedPtrCastPtr jCancellable
return jCancellable'
onException (do
result <- propagateGError $ poppler_document_new_from_stream stream' length_ maybePassword maybeCancellable
checkUnexpectedReturnNULL "poppler_document_new_from_stream" result
result' <- (wrapObject Document) result
touchManagedPtr stream
whenJust cancellable touchManagedPtr
freeMem maybePassword
return result'
) (do
freeMem maybePassword
)
foreign import ccall "poppler_document_find_dest" poppler_document_find_dest ::
Ptr Document ->
CString ->
IO (Ptr Dest)
documentFindDest ::
(MonadIO m, DocumentK a) =>
a ->
T.Text ->
m Dest
documentFindDest _obj link_name = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
link_name' <- textToCString link_name
result <- poppler_document_find_dest _obj' link_name'
checkUnexpectedReturnNULL "poppler_document_find_dest" result
result' <- (wrapBoxed Dest) result
touchManagedPtr _obj
freeMem link_name'
return result'
foreign import ccall "poppler_document_get_attachments" poppler_document_get_attachments ::
Ptr Document ->
IO (Ptr (GList (Ptr Attachment)))
documentGetAttachments ::
(MonadIO m, DocumentK a) =>
a ->
m [Attachment]
documentGetAttachments _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_attachments _obj'
checkUnexpectedReturnNULL "poppler_document_get_attachments" result
result' <- unpackGList result
result'' <- mapM (wrapObject Attachment) result'
g_list_free result
touchManagedPtr _obj
return result''
foreign import ccall "poppler_document_get_author" poppler_document_get_author ::
Ptr Document ->
IO CString
documentGetAuthor ::
(MonadIO m, DocumentK a) =>
a ->
m T.Text
documentGetAuthor _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_author _obj'
checkUnexpectedReturnNULL "poppler_document_get_author" result
result' <- cstringToText result
freeMem result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_get_creation_date" poppler_document_get_creation_date ::
Ptr Document ->
IO Int64
documentGetCreationDate ::
(MonadIO m, DocumentK a) =>
a ->
m Int64
documentGetCreationDate _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_creation_date _obj'
touchManagedPtr _obj
return result
foreign import ccall "poppler_document_get_creator" poppler_document_get_creator ::
Ptr Document ->
IO CString
documentGetCreator ::
(MonadIO m, DocumentK a) =>
a ->
m T.Text
documentGetCreator _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_creator _obj'
checkUnexpectedReturnNULL "poppler_document_get_creator" result
result' <- cstringToText result
freeMem result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_get_form_field" poppler_document_get_form_field ::
Ptr Document ->
Int32 ->
IO (Ptr FormField)
documentGetFormField ::
(MonadIO m, DocumentK a) =>
a ->
Int32 ->
m FormField
documentGetFormField _obj id = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_form_field _obj' id
checkUnexpectedReturnNULL "poppler_document_get_form_field" result
result' <- (wrapObject FormField) result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_get_id" poppler_document_get_id ::
Ptr Document ->
Ptr CString ->
Ptr CString ->
IO CInt
documentGetId ::
(MonadIO m, DocumentK a) =>
a ->
m (Bool,T.Text,T.Text)
documentGetId _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
permanent_id <- allocMem :: IO (Ptr CString)
update_id <- allocMem :: IO (Ptr CString)
result <- poppler_document_get_id _obj' permanent_id update_id
let result' = (/= 0) result
permanent_id' <- peek permanent_id
permanent_id'' <- cstringToText permanent_id'
freeMem permanent_id'
update_id' <- peek update_id
update_id'' <- cstringToText update_id'
freeMem update_id'
touchManagedPtr _obj
freeMem permanent_id
freeMem update_id
return (result', permanent_id'', update_id'')
foreign import ccall "poppler_document_get_keywords" poppler_document_get_keywords ::
Ptr Document ->
IO CString
documentGetKeywords ::
(MonadIO m, DocumentK a) =>
a ->
m T.Text
documentGetKeywords _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_keywords _obj'
checkUnexpectedReturnNULL "poppler_document_get_keywords" result
result' <- cstringToText result
freeMem result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_get_metadata" poppler_document_get_metadata ::
Ptr Document ->
IO CString
documentGetMetadata ::
(MonadIO m, DocumentK a) =>
a ->
m T.Text
documentGetMetadata _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_metadata _obj'
checkUnexpectedReturnNULL "poppler_document_get_metadata" result
result' <- cstringToText result
freeMem result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_get_modification_date" poppler_document_get_modification_date ::
Ptr Document ->
IO Int64
documentGetModificationDate ::
(MonadIO m, DocumentK a) =>
a ->
m Int64
documentGetModificationDate _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_modification_date _obj'
touchManagedPtr _obj
return result
foreign import ccall "poppler_document_get_n_attachments" poppler_document_get_n_attachments ::
Ptr Document ->
IO Word32
documentGetNAttachments ::
(MonadIO m, DocumentK a) =>
a ->
m Word32
documentGetNAttachments _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_n_attachments _obj'
touchManagedPtr _obj
return result
foreign import ccall "poppler_document_get_n_pages" poppler_document_get_n_pages ::
Ptr Document ->
IO Int32
documentGetNPages ::
(MonadIO m, DocumentK a) =>
a ->
m Int32
documentGetNPages _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_n_pages _obj'
touchManagedPtr _obj
return result
foreign import ccall "poppler_document_get_page" poppler_document_get_page ::
Ptr Document ->
Int32 ->
IO (Ptr Page)
documentGetPage ::
(MonadIO m, DocumentK a) =>
a ->
Int32 ->
m Page
documentGetPage _obj index = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_page _obj' index
checkUnexpectedReturnNULL "poppler_document_get_page" result
result' <- (wrapObject Page) result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_get_page_by_label" poppler_document_get_page_by_label ::
Ptr Document ->
CString ->
IO (Ptr Page)
documentGetPageByLabel ::
(MonadIO m, DocumentK a) =>
a ->
T.Text ->
m Page
documentGetPageByLabel _obj label = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
label' <- textToCString label
result <- poppler_document_get_page_by_label _obj' label'
checkUnexpectedReturnNULL "poppler_document_get_page_by_label" result
result' <- (wrapObject Page) result
touchManagedPtr _obj
freeMem label'
return result'
foreign import ccall "poppler_document_get_page_layout" poppler_document_get_page_layout ::
Ptr Document ->
IO CUInt
documentGetPageLayout ::
(MonadIO m, DocumentK a) =>
a ->
m PageLayout
documentGetPageLayout _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_page_layout _obj'
let result' = (toEnum . fromIntegral) result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_get_page_mode" poppler_document_get_page_mode ::
Ptr Document ->
IO CUInt
documentGetPageMode ::
(MonadIO m, DocumentK a) =>
a ->
m PageMode
documentGetPageMode _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_page_mode _obj'
let result' = (toEnum . fromIntegral) result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_get_pdf_version" poppler_document_get_pdf_version ::
Ptr Document ->
Ptr Word32 ->
Ptr Word32 ->
IO ()
documentGetPdfVersion ::
(MonadIO m, DocumentK a) =>
a ->
m (Word32,Word32)
documentGetPdfVersion _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
major_version <- allocMem :: IO (Ptr Word32)
minor_version <- allocMem :: IO (Ptr Word32)
poppler_document_get_pdf_version _obj' major_version minor_version
major_version' <- peek major_version
minor_version' <- peek minor_version
touchManagedPtr _obj
freeMem major_version
freeMem minor_version
return (major_version', minor_version')
foreign import ccall "poppler_document_get_pdf_version_string" poppler_document_get_pdf_version_string ::
Ptr Document ->
IO CString
documentGetPdfVersionString ::
(MonadIO m, DocumentK a) =>
a ->
m T.Text
documentGetPdfVersionString _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_pdf_version_string _obj'
checkUnexpectedReturnNULL "poppler_document_get_pdf_version_string" result
result' <- cstringToText result
freeMem result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_get_permissions" poppler_document_get_permissions ::
Ptr Document ->
IO CUInt
documentGetPermissions ::
(MonadIO m, DocumentK a) =>
a ->
m [Permissions]
documentGetPermissions _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_permissions _obj'
let result' = wordToGFlags result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_get_producer" poppler_document_get_producer ::
Ptr Document ->
IO CString
documentGetProducer ::
(MonadIO m, DocumentK a) =>
a ->
m T.Text
documentGetProducer _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_producer _obj'
checkUnexpectedReturnNULL "poppler_document_get_producer" result
result' <- cstringToText result
freeMem result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_get_subject" poppler_document_get_subject ::
Ptr Document ->
IO CString
documentGetSubject ::
(MonadIO m, DocumentK a) =>
a ->
m T.Text
documentGetSubject _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_subject _obj'
checkUnexpectedReturnNULL "poppler_document_get_subject" result
result' <- cstringToText result
freeMem result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_get_title" poppler_document_get_title ::
Ptr Document ->
IO CString
documentGetTitle ::
(MonadIO m, DocumentK a) =>
a ->
m T.Text
documentGetTitle _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_get_title _obj'
checkUnexpectedReturnNULL "poppler_document_get_title" result
result' <- cstringToText result
freeMem result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_has_attachments" poppler_document_has_attachments ::
Ptr Document ->
IO CInt
documentHasAttachments ::
(MonadIO m, DocumentK a) =>
a ->
m Bool
documentHasAttachments _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_has_attachments _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_is_linearized" poppler_document_is_linearized ::
Ptr Document ->
IO CInt
documentIsLinearized ::
(MonadIO m, DocumentK a) =>
a ->
m Bool
documentIsLinearized _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- poppler_document_is_linearized _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
foreign import ccall "poppler_document_save" poppler_document_save ::
Ptr Document ->
CString ->
Ptr (Ptr GError) ->
IO CInt
documentSave ::
(MonadIO m, DocumentK a) =>
a ->
T.Text ->
m ()
documentSave _obj uri = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
uri' <- textToCString uri
onException (do
_ <- propagateGError $ poppler_document_save _obj' uri'
touchManagedPtr _obj
freeMem uri'
return ()
) (do
freeMem uri'
)
foreign import ccall "poppler_document_save_a_copy" poppler_document_save_a_copy ::
Ptr Document ->
CString ->
Ptr (Ptr GError) ->
IO CInt
documentSaveACopy ::
(MonadIO m, DocumentK a) =>
a ->
T.Text ->
m ()
documentSaveACopy _obj uri = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
uri' <- textToCString uri
onException (do
_ <- propagateGError $ poppler_document_save_a_copy _obj' uri'
touchManagedPtr _obj
freeMem uri'
return ()
) (do
freeMem uri'
)