boxes and glue

56 Followers
3 Following
57 Posts
The boxes and glue PDF library for Go
GitHubhttps://github.com/speedata/boxesandglue
Webhttps://boxesandglue.dev

Next big step for boxes and glue. There is a new example in https://github.com/boxesandglue/boxesandglue-examples/tree/main/glu/markdown/slides for the command line interface which creates a fully accessible PDF from markdown source without any further settings!

Some specialities: Lua processing, CSS formatting, MetaPost decoration.

#accessibility #boxesandglue

This was an excellent week for boxes and glue.

* the textshape Text shaper is now usable and passes almost all harfbuzz tests (still working on the last ones)
* mpgo - a Go MetaPost code is now pretty much feature complete (an bug free, of course)
* hobby, a Lua frontend for mpgo works fine
* glu, a boxes and glue Lua frontend is getting more and more functionality
* boxes and glue can now render SVGs in PDF and is font aware. it uses the textshape engine to render fonts in SVG.
* Merged some pull requests for textshape and boxesandglue.

https://boxesandglue.dev

#boxesandglue #PDF #SVG #MetaPost

boxes and glue - boxes and glue

New software in the boxes and glue universe: mpgo and hobby. mpgo is a MetaPost library (re-)written in Go and hobby is a Lua frontend which uses the library and adds a Lua layer for programming.

See https://boxesandglue.dev/hobby/, https://github.com/boxesandglue/mpgo and https://github.com/boxesandglue/hobby

#MetaPost #go #lua

I have moved the webpage (https://boxesandglue.dev) from MkDocs to Hugo. Hugo is so much faster than MkDocs. And the Hextra theme is lightweight and customisable (https://imfing.github.io/hextra/)

Also did some re-organisation of the content.

boxes and glue - boxes and glue

A small follow-up from last post on high speed PDF generation with boxes and glue at

https://news.speedata.de/2025/05/27/highspeedpdfgeneration/

#boxesandglue #highspeedpublishing

High speed PDF generation with boxes and glue

I have been playing with electronic invoices (especially the German and French ZUGFeRD/Factur-X format) for a while now. The speedata Publisher has support for ZUGFeRD since 2017. The next step is to make (my other PDF generation software) boxes and glue work with electronic invoices. For that, I use the new command line interface for boxes and glue (which I will describe in a future blog post). There only a few things that need to be done to make this work:

Finally created a first real world example for the boxes and glue command line interface at https://github.com/boxesandglue/boxesandglue-examples/tree/main/commandline/zugferdinvoice

Creating 1,000 EN 16931 compliant invoices in 14 seconds on an 2021 m1 MacBook Pro is not bad...

#boxesandglue #highspeedpublishing #zugferd

boxesandglue-examples/commandline/zugferdinvoice at main · boxesandglue/boxesandglue-examples

Examples for the boxes and glue library. Contribute to boxesandglue/boxesandglue-examples development by creating an account on GitHub.

GitHub

Next attempt for a command line interface for #boxesandglue is now available at

https://github.com/boxesandglue/cli

There are binaries for Window, Linux and macOS and some sort of documentation at https://boxesandglue.dev/cli/. Very early stage, but it shows the direction. Great thank to the hackers at https://risor.io for the great language / Go bindings.

GitHub - boxesandglue/cli: command line interface for boxes and glue (experimental)

command line interface for boxes and glue (experimental) - boxesandglue/cli

GitHub

I am still looking for a good (pure Go) scripting language as a frontend for boxes and glue.

I have tried https://github.com/dop251/goja (JavaScript), https://github.com/yuin/gopher-lua (Lua), https://github.com/google/starlark-go (Python-like) and now https://github.com/risor-io/risor (Go like syntax).

My current candidate is risor, which takes a lot of code to glue boxes and glue and the scripting language, but much control since there is almost no magic involved (reflection). The author is super responsive and helpful.

GitHub - dop251/goja: ECMAScript/JavaScript engine in pure Go

ECMAScript/JavaScript engine in pure Go. Contribute to dop251/goja development by creating an account on GitHub.

GitHub

Just found another TeX implementation in Go. Totally unlike boxes and glue. It looks good (not tried it yet)

https://git.sr.ht/~sbinet/star-tex

I have greatly reduced the memory footprint to 1/10 of the previous size. Stay tuned for more optimizations.