pdf-toolbox-core-0.1.1: A collection of tools for processing PDF files.
Safe HaskellNone
LanguageHaskell2010

Pdf.Core.Parsers.Object

Description

This module contains parsers for pdf objects

Synopsis

Parse any object

parseObject :: Parser Object Source #

Parse any Object except Stream because for Stream we need offset of data in file

>>> parseOnly parseObject "/Name"
Right (OName (Name "Name"))

Parse object of specific type

parseDict :: Parser Dict Source #

Parse a dictionary

parseArray :: Parser Array Source #

Parse an array

parseName :: Parser Name Source #

Parse a name

parseString :: Parser ByteString Source #

Parse literal string

parseRef :: Parser Ref Source #

Parse a reference

parseBool :: Parser Bool Source #

Parse bool value

Other

parseTillStreamData :: Parser () Source #

Consumes input till stream's data

Use parseDict then parseTillStreamData to determine whether the object is dictionary or stream. If parseTillStreamData fails, then it is a dictionary. Otherwise it is stream, and current position in input data will point to stream's data start

>>> parse (parseDict >>= \dict -> parseTillStreamData >> return dict) "<</Key 123>>\nstream\n1234\nendstream"
Done "1234\nendstream" Dict [(Name "Key",ONumber (NumInt 123))]

parseIndirectObject :: Parser (Ref, Object) Source #

Parse object. Input position should point to offset defined in XRef

>>> parseOnly parseIndirectObject "1 2 obj\n12"
Right (Ref 1 2,ONumber (NumInt 12))

isRegularChar :: Char -> Bool Source #

Whether the character can appear in Name