alcinnz,
@alcinnz@floss.social avatar

LibPoppler's primary OutputDev subclass is an adaptor to its vendored "Splash" vector graphics library. I'll discuss Splash itself someday very soon.

It tracks which colour mode to use, row padding, paper colour, screen parameters, the document & its XRef, a Splash instance, bitmap, font engine, T3 font cache & stack, current font, clip path, transparancy group, & plenty of flags.

With the aid of some additional Splash "patterns" the implementation includes:

1/2?

alcinnz,
@alcinnz@floss.social avatar
  • Plenty of code converting from Poppler's types to Splash's, especially relating to fonts (various formats) hence the caching!
  • Custom colour blending functions.
  • Cache of matrix transformed fonts from within the PDF file with a glyph's bounding box.
  • Instantiate & free Splash objects.
  • Abstractions around drawing Poppler's parsed types via Splash, some exposed as OutputDev hooks.

Note: pdf2html disables the text rendering via subclassing.

2/2.5!

alcinnz,
@alcinnz@floss.social avatar

The glyph stack tracks char code, presence of d0/d1 op, caching flag, cache & tag, bitmap, Splash object, & a couple CTM doubles.

The Transparency Group linked-list tracks x/y offset coordinates, a couple bitmaps, colour space, isolated flag, knockout flag & coordinate, font anti-alias flag, & original bitmap/Splash objects.

2.5/2.5 Fin for today! Tomorrow: page-rendering method; followed by Splash vector graphics then Goo JS engine!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • DreamBathrooms
  • magazineikmin
  • InstantRegret
  • Youngstown
  • slotface
  • hgfsjryuu7
  • mdbf
  • vwfavf
  • kavyap
  • tsrsr
  • ngwrru68w68
  • PowerRangers
  • thenastyranch
  • everett
  • tester
  • Durango
  • osvaldo12
  • khanakhh
  • ethstaker
  • rosin
  • cubers
  • tacticalgear
  • GTA5RPClips
  • normalnudes
  • cisconetworking
  • modclub
  • Leos
  • anitta
  • All magazines