HPDF 1.4.6 → 1.4.7
raw patch · 9 files changed
+55/−28 lines, 9 filesdep ~basedep ~mtlPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, mtl
API changes (from Hackage documentation)
- Graphics.PDF: instance PdfLengthInfo PDFTrailer
- Graphics.PDF: instance PdfObject PDFTrailer
- Graphics.PDF.Action: instance Action GoToURL
- Graphics.PDF.Action: instance PdfLengthInfo GoToURL
- Graphics.PDF.Action: instance PdfObject GoToURL
- Graphics.PDF.Annotation: instance AnnotationObject PDFLink
- Graphics.PDF.Annotation: instance AnnotationObject TextAnnotation
- Graphics.PDF.Annotation: instance AnnotationObject URLLink
- Graphics.PDF.Annotation: instance Eq TextIcon
- Graphics.PDF.Annotation: instance PdfLengthInfo PDFLink
- Graphics.PDF.Annotation: instance PdfLengthInfo TextAnnotation
- Graphics.PDF.Annotation: instance PdfLengthInfo URLLink
- Graphics.PDF.Annotation: instance PdfObject PDFLink
- Graphics.PDF.Annotation: instance PdfObject TextAnnotation
- Graphics.PDF.Annotation: instance PdfObject URLLink
- Graphics.PDF.Annotation: instance Show TextIcon
- Graphics.PDF.Coordinates: instance Eq Matrix
- Graphics.PDF.Coordinates: instance Num Matrix
- Graphics.PDF.Coordinates: instance Show Matrix
- Graphics.PDF.Document: author :: PDFDocumentInfo -> PDFString
- Graphics.PDF.Document: centerWindow :: PDFViewerPreferences -> Bool
- Graphics.PDF.Document: compressed :: PDFDocumentInfo -> Bool
- Graphics.PDF.Document: displayDoctitle :: PDFViewerPreferences -> Bool
- Graphics.PDF.Document: fitWindow :: PDFViewerPreferences -> Bool
- Graphics.PDF.Document: hideMenuBar :: PDFViewerPreferences -> Bool
- Graphics.PDF.Document: hideToolbar :: PDFViewerPreferences -> Bool
- Graphics.PDF.Document: hideWindowUI :: PDFViewerPreferences -> Bool
- Graphics.PDF.Document: nonFullScreenPageMode :: PDFViewerPreferences -> PDFDocumentPageMode
- Graphics.PDF.Document: pageLayout :: PDFDocumentInfo -> PDFDocumentPageLayout
- Graphics.PDF.Document: pageMode :: PDFDocumentInfo -> PDFDocumentPageMode
- Graphics.PDF.Document: subject :: PDFDocumentInfo -> PDFString
- Graphics.PDF.Document: viewerPreferences :: PDFDocumentInfo -> PDFViewerPreferences
- Graphics.PDF.Image: instance Functor FA
- Graphics.PDF.Image: instance Monad FA
- Graphics.PDF.Image: instance MonadError String FA
- Graphics.PDF.Image: instance PDFXObject PDFJpeg
- Graphics.PDF.Image: instance PDFXObject RawImage
- Graphics.PDF.Image: instance PdfLengthInfo PDFJpeg
- Graphics.PDF.Image: instance PdfLengthInfo RawImage
- Graphics.PDF.Image: instance PdfObject PDFJpeg
- Graphics.PDF.Image: instance PdfObject RawImage
- Graphics.PDF.Image: instance PdfResourceObject (PDFReference PDFJpeg)
- Graphics.PDF.Image: instance PdfResourceObject (PDFReference RawImage)
- Graphics.PDF.Pattern: instance Enum PaintType
- Graphics.PDF.Pattern: instance Enum TilingType
- Graphics.PDF.Pattern: instance Eq PaintType
- Graphics.PDF.Pattern: instance Eq TilingType
- Graphics.PDF.Shapes: instance Enum CapStyle
- Graphics.PDF.Shapes: instance Enum JoinStyle
- Graphics.PDF.Shapes: instance Eq Arc
- Graphics.PDF.Shapes: instance Eq CapStyle
- Graphics.PDF.Shapes: instance Eq Circle
- Graphics.PDF.Shapes: instance Eq DashPattern
- Graphics.PDF.Shapes: instance Eq Ellipse
- Graphics.PDF.Shapes: instance Eq JoinStyle
- Graphics.PDF.Shapes: instance Eq Line
- Graphics.PDF.Shapes: instance Eq Rectangle
- Graphics.PDF.Shapes: instance Eq RoundRectangle
- Graphics.PDF.Shapes: instance Shape Arc
- Graphics.PDF.Shapes: instance Shape Circle
- Graphics.PDF.Shapes: instance Shape Ellipse
- Graphics.PDF.Shapes: instance Shape Line
- Graphics.PDF.Shapes: instance Shape Polygon
- Graphics.PDF.Shapes: instance Shape Rectangle
- Graphics.PDF.Shapes: instance Shape RoundRectangle
- Graphics.PDF.Text: instance Enum TextMode
- Graphics.PDF.Text: instance Eq TextMode
- Graphics.PDF.Text: instance Functor PDFText
- Graphics.PDF.Text: instance Monad PDFText
- Graphics.PDF.Text: instance MonadPath PDFText
- Graphics.PDF.Text: instance MonadState TextParameter PDFText
- Graphics.PDF.Text: instance MonadWriter Builder PDFText
- Graphics.PDF.Text: instance Ord TextMode
- Graphics.PDF.Typesetting: baselineskip :: VerState s -> !(PDFFloat, PDFFloat, PDFFloat)
- Graphics.PDF.Typesetting: currentParagraphStyle :: VerState s -> !s
- Graphics.PDF.Typesetting: instance Eq Orientation
- Graphics.PDF.Typesetting: instance Functor (Para s)
- Graphics.PDF.Typesetting: instance Functor (TM ps s)
- Graphics.PDF.Typesetting: instance Monad (Para s)
- Graphics.PDF.Typesetting: instance Monad (TM ps s)
- Graphics.PDF.Typesetting: instance MonadReader BRState (Para s)
- Graphics.PDF.Typesetting: instance MonadState (TMState ps s) (TM ps s)
- Graphics.PDF.Typesetting: instance MonadState s (Para s)
- Graphics.PDF.Typesetting: instance MonadWriter [Letter s] (Para s)
- Graphics.PDF.Typesetting: instance MonadWriter [VBox ps s] (TM ps s)
- Graphics.PDF.Typesetting: instance Show Orientation
- Graphics.PDF.Typesetting: instance Style s => MonadStyle s (Para s)
- Graphics.PDF.Typesetting: instance Style s => MonadStyle s (TM ps s)
- Graphics.PDF.Typesetting: lineskip :: VerState s -> !(PDFFloat, PDFFloat, PDFFloat)
- Graphics.PDF.Typesetting: lineskiplimit :: VerState s -> !PDFFloat
- Graphics.PDF.Typesetting: penWidth :: TextStyle -> !PDFFloat
- Graphics.PDF.Typesetting: scaleCompression :: TextStyle -> !PDFFloat
- Graphics.PDF.Typesetting: scaleDilatation :: TextStyle -> !PDFFloat
- Graphics.PDF.Typesetting: scaleSpace :: TextStyle -> !PDFFloat
- Graphics.PDF.Typesetting: textFillColor :: TextStyle -> !Color
- Graphics.PDF.Typesetting: textFont :: TextStyle -> !PDFFont
- Graphics.PDF.Typesetting: textMode :: TextStyle -> !TextMode
- Graphics.PDF.Typesetting: textStrokeColor :: TextStyle -> !Color
+ Graphics.PDF: instance Graphics.PDF.LowLevel.Types.PdfLengthInfo Graphics.PDF.PDFTrailer
+ Graphics.PDF: instance Graphics.PDF.LowLevel.Types.PdfObject Graphics.PDF.PDFTrailer
+ Graphics.PDF.Action: instance Graphics.PDF.Action.Action Graphics.PDF.Action.GoToURL
+ Graphics.PDF.Action: instance Graphics.PDF.LowLevel.Types.PdfLengthInfo Graphics.PDF.Action.GoToURL
+ Graphics.PDF.Action: instance Graphics.PDF.LowLevel.Types.PdfObject Graphics.PDF.Action.GoToURL
+ Graphics.PDF.Annotation: instance GHC.Classes.Eq Graphics.PDF.Annotation.TextIcon
+ Graphics.PDF.Annotation: instance GHC.Show.Show Graphics.PDF.Annotation.TextIcon
+ Graphics.PDF.Annotation: instance Graphics.PDF.Draw.AnnotationObject Graphics.PDF.Annotation.PDFLink
+ Graphics.PDF.Annotation: instance Graphics.PDF.Draw.AnnotationObject Graphics.PDF.Annotation.TextAnnotation
+ Graphics.PDF.Annotation: instance Graphics.PDF.Draw.AnnotationObject Graphics.PDF.Annotation.URLLink
+ Graphics.PDF.Annotation: instance Graphics.PDF.LowLevel.Types.PdfLengthInfo Graphics.PDF.Annotation.PDFLink
+ Graphics.PDF.Annotation: instance Graphics.PDF.LowLevel.Types.PdfLengthInfo Graphics.PDF.Annotation.TextAnnotation
+ Graphics.PDF.Annotation: instance Graphics.PDF.LowLevel.Types.PdfLengthInfo Graphics.PDF.Annotation.URLLink
+ Graphics.PDF.Annotation: instance Graphics.PDF.LowLevel.Types.PdfObject Graphics.PDF.Annotation.PDFLink
+ Graphics.PDF.Annotation: instance Graphics.PDF.LowLevel.Types.PdfObject Graphics.PDF.Annotation.TextAnnotation
+ Graphics.PDF.Annotation: instance Graphics.PDF.LowLevel.Types.PdfObject Graphics.PDF.Annotation.URLLink
+ Graphics.PDF.Coordinates: instance GHC.Classes.Eq Graphics.PDF.Coordinates.Matrix
+ Graphics.PDF.Coordinates: instance GHC.Num.Num Graphics.PDF.Coordinates.Matrix
+ Graphics.PDF.Coordinates: instance GHC.Show.Show Graphics.PDF.Coordinates.Matrix
+ Graphics.PDF.Document: [author] :: PDFDocumentInfo -> PDFString
+ Graphics.PDF.Document: [centerWindow] :: PDFViewerPreferences -> Bool
+ Graphics.PDF.Document: [compressed] :: PDFDocumentInfo -> Bool
+ Graphics.PDF.Document: [displayDoctitle] :: PDFViewerPreferences -> Bool
+ Graphics.PDF.Document: [fitWindow] :: PDFViewerPreferences -> Bool
+ Graphics.PDF.Document: [hideMenuBar] :: PDFViewerPreferences -> Bool
+ Graphics.PDF.Document: [hideToolbar] :: PDFViewerPreferences -> Bool
+ Graphics.PDF.Document: [hideWindowUI] :: PDFViewerPreferences -> Bool
+ Graphics.PDF.Document: [nonFullScreenPageMode] :: PDFViewerPreferences -> PDFDocumentPageMode
+ Graphics.PDF.Document: [pageLayout] :: PDFDocumentInfo -> PDFDocumentPageLayout
+ Graphics.PDF.Document: [pageMode] :: PDFDocumentInfo -> PDFDocumentPageMode
+ Graphics.PDF.Document: [subject] :: PDFDocumentInfo -> PDFString
+ Graphics.PDF.Document: [viewerPreferences] :: PDFDocumentInfo -> PDFViewerPreferences
+ Graphics.PDF.Image: instance Control.Monad.Error.Class.MonadError GHC.Base.String Graphics.PDF.Image.FA
+ Graphics.PDF.Image: instance GHC.Base.Applicative Graphics.PDF.Image.FA
+ Graphics.PDF.Image: instance GHC.Base.Functor Graphics.PDF.Image.FA
+ Graphics.PDF.Image: instance GHC.Base.Monad Graphics.PDF.Image.FA
+ Graphics.PDF.Image: instance Graphics.PDF.Draw.PDFXObject Graphics.PDF.Image.PDFJpeg
+ Graphics.PDF.Image: instance Graphics.PDF.Draw.PDFXObject Graphics.PDF.Image.RawImage
+ Graphics.PDF.Image: instance Graphics.PDF.LowLevel.Types.PdfLengthInfo Graphics.PDF.Image.PDFJpeg
+ Graphics.PDF.Image: instance Graphics.PDF.LowLevel.Types.PdfLengthInfo Graphics.PDF.Image.RawImage
+ Graphics.PDF.Image: instance Graphics.PDF.LowLevel.Types.PdfObject Graphics.PDF.Image.PDFJpeg
+ Graphics.PDF.Image: instance Graphics.PDF.LowLevel.Types.PdfObject Graphics.PDF.Image.RawImage
+ Graphics.PDF.Image: instance Graphics.PDF.Resources.PdfResourceObject (Graphics.PDF.LowLevel.Types.PDFReference Graphics.PDF.Image.PDFJpeg)
+ Graphics.PDF.Image: instance Graphics.PDF.Resources.PdfResourceObject (Graphics.PDF.LowLevel.Types.PDFReference Graphics.PDF.Image.RawImage)
+ Graphics.PDF.Pattern: instance GHC.Classes.Eq Graphics.PDF.Pattern.PaintType
+ Graphics.PDF.Pattern: instance GHC.Classes.Eq Graphics.PDF.Pattern.TilingType
+ Graphics.PDF.Pattern: instance GHC.Enum.Enum Graphics.PDF.Pattern.PaintType
+ Graphics.PDF.Pattern: instance GHC.Enum.Enum Graphics.PDF.Pattern.TilingType
+ Graphics.PDF.Shapes: instance GHC.Classes.Eq Graphics.PDF.Shapes.Arc
+ Graphics.PDF.Shapes: instance GHC.Classes.Eq Graphics.PDF.Shapes.CapStyle
+ Graphics.PDF.Shapes: instance GHC.Classes.Eq Graphics.PDF.Shapes.Circle
+ Graphics.PDF.Shapes: instance GHC.Classes.Eq Graphics.PDF.Shapes.DashPattern
+ Graphics.PDF.Shapes: instance GHC.Classes.Eq Graphics.PDF.Shapes.Ellipse
+ Graphics.PDF.Shapes: instance GHC.Classes.Eq Graphics.PDF.Shapes.JoinStyle
+ Graphics.PDF.Shapes: instance GHC.Classes.Eq Graphics.PDF.Shapes.Line
+ Graphics.PDF.Shapes: instance GHC.Classes.Eq Graphics.PDF.Shapes.Rectangle
+ Graphics.PDF.Shapes: instance GHC.Classes.Eq Graphics.PDF.Shapes.RoundRectangle
+ Graphics.PDF.Shapes: instance GHC.Enum.Enum Graphics.PDF.Shapes.CapStyle
+ Graphics.PDF.Shapes: instance GHC.Enum.Enum Graphics.PDF.Shapes.JoinStyle
+ Graphics.PDF.Shapes: instance Graphics.PDF.Shapes.Shape Graphics.PDF.Shapes.Arc
+ Graphics.PDF.Shapes: instance Graphics.PDF.Shapes.Shape Graphics.PDF.Shapes.Circle
+ Graphics.PDF.Shapes: instance Graphics.PDF.Shapes.Shape Graphics.PDF.Shapes.Ellipse
+ Graphics.PDF.Shapes: instance Graphics.PDF.Shapes.Shape Graphics.PDF.Shapes.Line
+ Graphics.PDF.Shapes: instance Graphics.PDF.Shapes.Shape Graphics.PDF.Shapes.Polygon
+ Graphics.PDF.Shapes: instance Graphics.PDF.Shapes.Shape Graphics.PDF.Shapes.Rectangle
+ Graphics.PDF.Shapes: instance Graphics.PDF.Shapes.Shape Graphics.PDF.Shapes.RoundRectangle
+ Graphics.PDF.Text: instance Control.Monad.State.Class.MonadState Graphics.PDF.Text.TextParameter Graphics.PDF.Text.PDFText
+ Graphics.PDF.Text: instance Control.Monad.Writer.Class.MonadWriter Data.Binary.Builder.Base.Builder Graphics.PDF.Text.PDFText
+ Graphics.PDF.Text: instance GHC.Base.Applicative Graphics.PDF.Text.PDFText
+ Graphics.PDF.Text: instance GHC.Base.Functor Graphics.PDF.Text.PDFText
+ Graphics.PDF.Text: instance GHC.Base.Monad Graphics.PDF.Text.PDFText
+ Graphics.PDF.Text: instance GHC.Classes.Eq Graphics.PDF.Text.TextMode
+ Graphics.PDF.Text: instance GHC.Classes.Ord Graphics.PDF.Text.TextMode
+ Graphics.PDF.Text: instance GHC.Enum.Enum Graphics.PDF.Text.TextMode
+ Graphics.PDF.Text: instance Graphics.PDF.LowLevel.Types.MonadPath Graphics.PDF.Text.PDFText
+ Graphics.PDF.Typesetting: [baselineskip] :: VerState s -> !(PDFFloat, PDFFloat, PDFFloat)
+ Graphics.PDF.Typesetting: [currentParagraphStyle] :: VerState s -> !s
+ Graphics.PDF.Typesetting: [lineskip] :: VerState s -> !(PDFFloat, PDFFloat, PDFFloat)
+ Graphics.PDF.Typesetting: [lineskiplimit] :: VerState s -> !PDFFloat
+ Graphics.PDF.Typesetting: [penWidth] :: TextStyle -> !PDFFloat
+ Graphics.PDF.Typesetting: [scaleCompression] :: TextStyle -> !PDFFloat
+ Graphics.PDF.Typesetting: [scaleDilatation] :: TextStyle -> !PDFFloat
+ Graphics.PDF.Typesetting: [scaleSpace] :: TextStyle -> !PDFFloat
+ Graphics.PDF.Typesetting: [textFillColor] :: TextStyle -> !Color
+ Graphics.PDF.Typesetting: [textFont] :: TextStyle -> !PDFFont
+ Graphics.PDF.Typesetting: [textMode] :: TextStyle -> !TextMode
+ Graphics.PDF.Typesetting: [textStrokeColor] :: TextStyle -> !Color
+ Graphics.PDF.Typesetting: instance Control.Monad.Reader.Class.MonadReader Graphics.PDF.Typesetting.Breaking.BRState (Graphics.PDF.Typesetting.Para s)
+ Graphics.PDF.Typesetting: instance Control.Monad.State.Class.MonadState (Graphics.PDF.Typesetting.TMState ps s) (Graphics.PDF.Typesetting.TM ps s)
+ Graphics.PDF.Typesetting: instance Control.Monad.State.Class.MonadState s (Graphics.PDF.Typesetting.Para s)
+ Graphics.PDF.Typesetting: instance Control.Monad.Writer.Class.MonadWriter [Graphics.PDF.Typesetting.Breaking.Letter s] (Graphics.PDF.Typesetting.Para s)
+ Graphics.PDF.Typesetting: instance Control.Monad.Writer.Class.MonadWriter [Graphics.PDF.Typesetting.Layout.VBox ps s] (Graphics.PDF.Typesetting.TM ps s)
+ Graphics.PDF.Typesetting: instance GHC.Base.Applicative (Graphics.PDF.Typesetting.Para s)
+ Graphics.PDF.Typesetting: instance GHC.Base.Applicative (Graphics.PDF.Typesetting.TM ps s)
+ Graphics.PDF.Typesetting: instance GHC.Base.Functor (Graphics.PDF.Typesetting.Para s)
+ Graphics.PDF.Typesetting: instance GHC.Base.Functor (Graphics.PDF.Typesetting.TM ps s)
+ Graphics.PDF.Typesetting: instance GHC.Base.Monad (Graphics.PDF.Typesetting.Para s)
+ Graphics.PDF.Typesetting: instance GHC.Base.Monad (Graphics.PDF.Typesetting.TM ps s)
+ Graphics.PDF.Typesetting: instance GHC.Classes.Eq Graphics.PDF.Typesetting.Orientation
+ Graphics.PDF.Typesetting: instance GHC.Show.Show Graphics.PDF.Typesetting.Orientation
+ Graphics.PDF.Typesetting: instance Graphics.PDF.Typesetting.Box.Style s => Graphics.PDF.Typesetting.MonadStyle s (Graphics.PDF.Typesetting.Para s)
+ Graphics.PDF.Typesetting: instance Graphics.PDF.Typesetting.Box.Style s => Graphics.PDF.Typesetting.MonadStyle s (Graphics.PDF.Typesetting.TM ps s)
- Graphics.PDF.Coordinates: dot :: RealFloat t => Complex t -> Complex t -> t
+ Graphics.PDF.Coordinates: dot :: (RealFloat t) => Complex t -> Complex t -> t
- Graphics.PDF.Coordinates: project :: RealFloat t => Complex t -> Complex t -> Complex t
+ Graphics.PDF.Coordinates: project :: (RealFloat t) => Complex t -> Complex t -> Complex t
- Graphics.PDF.Coordinates: projectX :: RealFloat t => Complex t -> Complex t
+ Graphics.PDF.Coordinates: projectX :: (RealFloat t) => Complex t -> Complex t
- Graphics.PDF.Coordinates: projectY :: RealFloat t => Complex t -> Complex t
+ Graphics.PDF.Coordinates: projectY :: (RealFloat t) => Complex t -> Complex t
- Graphics.PDF.Coordinates: scalePt :: RealFloat t => t -> Complex t -> Complex t
+ Graphics.PDF.Coordinates: scalePt :: (RealFloat t) => t -> Complex t -> Complex t
- Graphics.PDF.Document: class PDFXObject a where privateDrawXObject (PDFReference r) = do { xobjectMap <- gets xobjects; (newName, newMap) <- setResource "XObject" (PDFReference r) xobjectMap; modifyStrict $ \ s -> s {xobjects = newMap}; tell . mconcat $ [serialize "\ \/", serialize newName, serialize " Do"] } drawXObject = privateDrawXObject
+ Graphics.PDF.Document: class PDFXObject a where privateDrawXObject (PDFReference r) = do { xobjectMap <- gets xobjects; (newName, newMap) <- setResource "XObject" (PDFReference r) xobjectMap; modifyStrict $ \ s -> s {xobjects = newMap}; tell . mconcat $ [serialize "\n\ \/", serialize newName, serialize " Do"] } drawXObject = privateDrawXObject
- Graphics.PDF.Typesetting: displayFormattedText :: ParagraphStyle ps s => Rectangle -> ps -> s -> TM ps s a -> Draw a
+ Graphics.PDF.Typesetting: displayFormattedText :: (ParagraphStyle ps s) => Rectangle -> ps -> s -> TM ps s a -> Draw a
- Graphics.PDF.Typesetting: getBoxes :: ParagraphStyle ps s => ps -> s -> TM ps s a -> [VBox ps s]
+ Graphics.PDF.Typesetting: getBoxes :: (ParagraphStyle ps s) => ps -> s -> TM ps s a -> [VBox ps s]
Files
- Graphics/PDF.hs +10/−5
- Graphics/PDF/Document.hs +5/−2
- Graphics/PDF/Draw.hs +11/−1
- Graphics/PDF/Image.hs +10/−10
- Graphics/PDF/LowLevel/Serializer.hs +5/−1
- Graphics/PDF/Text.hs +4/−3
- Graphics/PDF/Typesetting.hs +2/−2
- Graphics/PDF/Typesetting/Horizontal.hs +5/−1
- HPDF.cabal +3/−3
Graphics/PDF.hs view
@@ -15,6 +15,8 @@ -- module to see how to use it. Or, download the package and look at the test.hs file -- in the Test folder. That file is giving an example of each feature. ---------------------------------------------------------+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE CPP #-} module Graphics.PDF ( -- * HPDF@@ -56,6 +58,10 @@ , module Graphics.PDF.Typesetting , module Graphics.PDF.Hyphenate ) where++#if !MIN_VERSION_base(4,8,0)+import Data.Monoid+#endif import Graphics.PDF.Hyphenate import Graphics.PDF.Typesetting@@ -83,7 +89,6 @@ import Graphics.PDF.Resources(emptyResource) import Data.Binary.Builder(Builder,fromLazyByteString, toLazyByteString) import Graphics.PDF.LowLevel.Serializer-import Data.Monoid import Data.List(unfoldr) -- | Create a new PDF document and return a first page@@ -203,7 +208,8 @@ (length l,last lengths,entries) -- foldr writeObject (0,0::Int64,[]) l where -- writeObject obj (nb,len,toc) = (nb+1,len + (B.length . toLazyByteString $ obj),(serialize $ (printf "%010d 00000 n \n" ((fromIntegral len)::Integer))) : toc)- +generateStreams :: PDFReference PDFCatalog -> PDFDocumentInfo -> Int -> Int64 -> [Builder]+ -> [Builder] -> B.ByteString generateStreams root di !nb !totalLen ens [] = let entries = reverse (tail ens) in@@ -250,7 +256,6 @@ objectEncoding (x,a) = toPDF . PDFReferencedObject (fromIntegral $! x) $ a (root,s) = flip runState pdfState . unPDF $ createPDF >> m >> saveObjects objs = objects s- k = IM.keys objs encodeAnObject (_,[]) = Nothing encodeAnObject (im,k:t) = let Just o = IM.lookup k im@@ -263,9 +268,9 @@ Nothing -> Just (objectEncoding (k,o),(im,t)) Just im' -> Just (objectEncoding (k,o),(im',t)) - encodedObjects = unfoldr encodeAnObject (objs,k)+ encodedObjects = unfoldr encodeAnObject (objs,IM.keys objs) objectContents = header : encodedObjects- (nb,len,toc) = writeObjectsAndCreateToc objectContents+ (_nb, _len, _toc) = writeObjectsAndCreateToc objectContents in generateStreams root (docInfo pdfState) 0 0 [] objectContents
Graphics/PDF/Document.hs view
@@ -9,7 +9,7 @@ -- -- Management of the PDF structure ----------------------------------------------------------+{-# LANGUAGE CPP #-} module Graphics.PDF.Document( -- * Document actions -- ** Special document objects@@ -42,13 +42,16 @@ , emptyDrawing ) where +#if !MIN_VERSION_base(4,8,0)+import Data.Monoid+#endif+ import Graphics.PDF.LowLevel.Types import Graphics.PDF.Draw import Graphics.PDF.Pages import Control.Monad.State import qualified Data.IntMap as IM import qualified Data.Map as M-import Data.Monoid -- | No information for the document standardDocInfo :: PDFDocumentInfo
Graphics/PDF/Draw.hs view
@@ -83,7 +83,9 @@ ) where import Data.Maybe+#if !MIN_VERSION_base(4,8,0) import Data.Monoid+#endif import qualified Data.Map as M import qualified Data.IntMap as IM@@ -168,6 +170,14 @@ -- | The drawing monad newtype Draw a = Draw {unDraw :: forall s. DrawTuple s -> ST s a } +instance Applicative Draw where+ pure x = Draw $ \_env -> return x+ df <*> af = Draw $ \env -> do+ f <- unDraw df env+ a <- unDraw af env+ return $ f a++ instance Monad Draw where m >>= f = Draw $ \env -> do a <- unDraw m env@@ -452,7 +462,7 @@ -- | The PDF Monad newtype PDF a = PDF {unPDF :: State PdfState a} #ifndef __HADDOCK__- deriving (Functor, Monad, MonadState PdfState)+ deriving (Functor, Applicative, Monad, MonadState PdfState) #else instance Functor PDF instance Monad PDF
Graphics/PDF/Image.hs view
@@ -42,12 +42,11 @@ #endif import Data.Char(ord) import Data.Bits-import Control.Monad.Error +import qualified Control.Monad.Except as EXC import Graphics.PDF.Coordinates-import Data.Binary.Builder(Builder,fromLazyByteString,singleton)+import Data.Binary.Builder(Builder,fromLazyByteString) import Control.Exception as E import qualified Data.Vector.Unboxed as U-import qualified Data.Bits as BI import Data.Word m_sof0 :: Int@@ -161,9 +160,9 @@ io = FA . liftIO -- | File analyzer monad-newtype FA a = FA {unFA :: ErrorT String IO a} +newtype FA a = FA { unFA :: EXC.ExceptT String IO a} #ifndef __HADDOCK__- deriving(Monad,MonadError String,Functor)+ deriving(Monad,Applicative,EXC.MonadError String,Functor) #else instance Monad FA instance MonadError String FA@@ -172,7 +171,7 @@ #endif runFA :: FA a -> IO (Either String a)-runFA = runErrorT . unFA+runFA = EXC.runExceptT . unFA readWord16 :: Handle -> FA Int readWord16 h = io $ do@@ -210,10 +209,11 @@ parseJpegContent :: Handle -> FA (Int,Int,Int,Int) parseJpegContent h = do r <- readWord8 h- when (r /= 0x0FF) $ throwError (strMsg "No marker found")+ when (r /= 0x0FF) $ EXC.throwError "No marker found" sof <- readWord8 h case sof of- a | a `elem` [m_sof5,m_sof6,m_sof7,m_sof9,m_sof10,m_sof11,m_sof13,m_sof14,m_sof15] -> throwError (strMsg "Unuspported compression mode")+ a | a `elem` [m_sof5,m_sof6,m_sof7,m_sof9,m_sof10,m_sof11,m_sof13,m_sof14,m_sof15] ->+ EXC.throwError "Unuspported compression mode" | a `elem` [m_sof0,m_sof1,m_sof3] -> do _ <- readWord16 h bits_per_component <- readWord8 h@@ -235,7 +235,7 @@ io $ hSeek h AbsoluteSeek 0 -- Check jpeg header <- readWord16 h- when (header /= 0x0FFD8) $ throwError (strMsg "Not a JPEG File")+ when (header /= 0x0FFD8) $ EXC.throwError "Not a JPEG File" -- Extract resolution from jfif --res <- optional $ jfif h@@ -250,7 +250,7 @@ --io $ print width --io $ print color_space --io $ hClose h- unless (color_space `elem` [1,3,4]) $ throwError (strMsg "Color space not supported")+ unless (color_space `elem` [1,3,4]) $ EXC.throwError "Color space not supported" return (bits_per_component,(fromIntegral height),(fromIntegral width),color_space) --test = analyzePng "Test/logo.png"
Graphics/PDF/LowLevel/Serializer.hs view
@@ -19,12 +19,16 @@ SerializeValue(..) ) where + +#if !MIN_VERSION_base(4,8,0)+import Data.Monoid+#endif+ import Data.Word import qualified Data.ByteString.Lazy as B import qualified Data.Binary.Builder as BU import qualified Data.ByteString.Lazy.Char8 as C import Foreign.Ptr(Ptr)-import Data.Monoid #if __GLASGOW_HASKELL__ >= 608 import Data.ByteString.Internal import qualified Data.ByteString.Lazy.Internal as L(ByteString(..))
Graphics/PDF/Text.hs view
@@ -13,7 +13,7 @@ -- -- PDF Text ----------------------------------------------------------+{-# LANGUAGE FlexibleContexts #-} module Graphics.PDF.Text( -- * Text -- ** Types@@ -136,7 +136,7 @@ -- | The text monad newtype PDFText a = PDFText {unText :: WriterT Builder (State TextParameter) a} #ifndef __HADDOCK__ - deriving(Monad,Functor,MonadWriter Builder,MonadState TextParameter)+ deriving(Monad,Applicative,Functor,MonadWriter Builder,MonadState TextParameter) #else instance Monad PDFText instance Functor PDFText@@ -183,7 +183,8 @@ tell . serialize $ "\nET" return a where- addFontRsrc f = modifyStrict $ \s -> s { rsrc = addResource (PDFName "Font") (PDFName (show f)) (toRsrc (PDFFont f 0)) (rsrc s)}+ addFontRsrc f = modifyStrict $ \s ->+ s { rsrc = addResource (PDFName "Font") (PDFName (show f)) (toRsrc (PDFFont f 0)) (rsrc s)} -- | Set position for the text beginning textStart :: PDFFloat
Graphics/PDF/Typesetting.hs view
@@ -155,7 +155,7 @@ newtype TM ps s a = TM { unTM :: RWS () [VBox ps s] (TMState ps s) a} #ifndef __HADDOCK__- deriving(Monad,MonadWriter [VBox ps s], MonadState (TMState ps s), Functor)+ deriving(Monad,Applicative,MonadWriter [VBox ps s], MonadState (TMState ps s), Functor) #else instance Monad TM instance MonadWriter [VBox ps s] TM@@ -165,7 +165,7 @@ newtype Para s a = Para { unPara :: RWS BRState [Letter s] s a} #ifndef __HADDOCK__- deriving(Monad,MonadWriter [Letter s], MonadReader BRState, MonadState s, Functor)+ deriving(Monad,Applicative,MonadWriter [Letter s], MonadReader BRState, MonadState s, Functor) #else instance Monad Para instance MonadWriter [Letter s] Para
Graphics/PDF/Typesetting/Horizontal.hs view
@@ -10,12 +10,17 @@ -- Horizontal mode --------------------------------------------------------- -- #hide+{-# LANGUAGE CPP #-} module Graphics.PDF.Typesetting.Horizontal ( HBox(..) , mkHboxWithRatio , horizontalPostProcess ) where +#if !MIN_VERSION_base(4,8,0)+import Data.Monoid+#endif+ import Graphics.PDF.LowLevel.Types import Graphics.PDF.Typesetting.Breaking import Graphics.PDF.Shapes@@ -30,7 +35,6 @@ import Control.Monad.Writer(tell) import Control.Monad(when) import Graphics.PDF.LowLevel.Serializer-import Data.Monoid -- | Current word (created from letter) is converted to a PDFString saveCurrentword :: String -> PDFString
HPDF.cabal view
@@ -1,5 +1,5 @@ Name: HPDF-Version: 1.4.6+Version: 1.4.7 cabal-version: >=1.6 License: BSD3 License-file:LICENSE@@ -25,7 +25,7 @@ TODO.txt library- build-depends: + build-depends: base >= 4 && < 5, containers, random >= 1.0, @@ -36,7 +36,7 @@ mtl, vector >=0.10 - ghc-options: -Wall -funbox-strict-fields -O2+ ghc-options: -Wall -fno-warn-tabs -funbox-strict-fields -O2 C-Sources: c/metrics.c