Sign in

Thomas Leitner

@gettalong.bsky.social
33 followers 57 following 38 posts

(Open source) Software developer, creator of kramdown and HexaPDF, Sci-Fi fan.

PostsRepliesMedia
Thomas Leitner @gettalong.bsky.social · 22/09/2026
Released #HexaPDF 1.11.0 with support for creating LTV digital signatures. hexapdf.gettalong.org/documentatio...
hexapdf.gettalong.org
Changelog - HexaPDF
010
Thomas Leitner @gettalong.bsky.social · 12/09/2026
This year's Euruko in Brno draws near. See you there next week! I will have some HexaPDF stickers with me 😁
001
Thomas Leitner @gettalong.bsky.social · 19/08/2026
PDF now supports Brotli compression through a new extension: pdfa.org/no-excuses-b... And #HexaPDF already has it implemented 😀
pdfa.org
No excuses: Brotli compression advances PDF – PDF Association
000
Reposted by Thomas Leitner
Vienna.rb @ruby.wien · 05/08/2026
Save the date! Vienna.rb is back with incredible talks and great vibes! See you at Platogo on the 3rd of September! ✌️
042
Thomas Leitner @gettalong.bsky.social · 07/06/2026
#HexaPDF 1.9.0 with support for HarfBuzz text shaping released! hexapdf.gettalong.org/news/2026/he...
hexapdf.gettalong.org
HexaPDF 1.9.0 - Text shaping et al. - HexaPDF
000
Thomas Leitner @gettalong.bsky.social · 01/06/2026
Coming to #HexaPDF with the next release: HarfBuzz based text shaping! First line in image without, second one with HarfBuzz based text shaping.
Screenshot of a PDF created by HexaPDF where the first line shows text with combining marks without correct shaping and the second line with correct shaping by HexaPDF's upcoming HarfBuzz support.
000
Thomas Leitner @gettalong.bsky.social · 13/04/2026
I just released #HexaPDF 1.7.0, with support for smart text extraction and the upcoming brotli compression filter, among other things. hexapdf.gettalong.org/documentatio... hexapdf.gettalong.org/documentatio...
hexapdf.gettalong.org
Changelog - HexaPDF
000
Reposted by Thomas Leitner
Vienna.rb @ruby.wien · 09/02/2026
Time for another Vienna Ruby Meetup! 🎉 It's been three months since the last meetup. To make up for it, we got three wonderful talks covering a wide range of topics this time. Thank you to Meister for hosting us!
012
Thomas Leitner @gettalong.bsky.social · 23/09/2025
Released #HexaPDF 1.4.1 with some fixes - see hexapdf.gettalong.org/documentatio...
hexapdf.gettalong.org
Changelog - HexaPDF
000
Thomas Leitner @gettalong.bsky.social · 09/06/2025
So, I now have implemented a basic template system for VersaDok. However, using ERB as preprocessor instead of the built-in template system is faster in most cases (even though the larger source doc needs to be parsed every time) because AST nodes need to be rendered many times more.
000
Thomas Leitner @gettalong.bsky.social · 23/04/2025
Once rubygems.org sends me the password reset e-mail that I already requested a few times, I can release a new version of #HexaPDF
rubygems.org
RubyGems.org | your community gem host
100
Thomas Leitner @gettalong.bsky.social · 12/03/2025
So I have been working on something lately, lightweight markup related. Turns out it's at least 4 times faster than kramdown when parsing the same document (n.b. a bit of an apple to banana comparison as kramdown can do much more at the moment but still 🤯)
Without YJIT on Ruby 3.4.1

Warming up --------------------------------------
            kramdown    259.422 i/s -     270.000 times in 1.040775s (3.85ms/i)
            versadok     1.158k i/s -      1.265k times in 1.091970s (863.22μs/i)
Calculating -------------------------------------
            kramdown    276.681 i/s -     778.000 times in 2.811901s (3.61ms/i)
            versadok     1.138k i/s -      3.475k times in 3.052762s (878.49μs/i)

Comparison:
            versadok:      1138.3 i/s
            kramdown:       276.7 i/s - 4.11x  slower

With YJIT on Ruby 3.4.1

Warming up --------------------------------------
            kramdown    334.871 i/s -     336.000 times in 1.003372s (2.99ms/i)
            versadok     1.853k i/s -      1.969k times in 1.062396s (539.56μs/i)
Calculating -------------------------------------
            kramdown    315.374 i/s -      1.004k times in 3.183520s (3.17ms/i)
            versadok     1.822k i/s -      5.560k times in 3.052272s (548.97μs/i)

Comparison:
            versadok:      1821.6 i/s
            kramdown:       315.4 i/s - 5.78x  slower
220
Thomas Leitner @gettalong.bsky.social · 11/03/2025
So, Ruby friends, how do I remove count number of trailing elements from an array *without* creating a new result array? There is Array#pop(count) but that creates an array I don't need or want ;-)
220
Thomas Leitner @gettalong.bsky.social · 18/02/2025
@itext.bsky.social Congrats on the release of 9.1! 🎉 The table rendering speed-up is great! Is the source code for the benchmark available somewhere?
000
Thomas Leitner @gettalong.bsky.social · 09/02/2025
Coming with the next release to #HexaPDF: Line annotation appearance generation. Other annotation types will follow.
Image of 10 line annotations with different styles
000
Thomas Leitner @gettalong.bsky.social · 02/01/2025
It seems that Ruby getting faster with each release is now the norm. As no one is pointing it out anymore 😀
000
Thomas Leitner @gettalong.bsky.social · 01/01/2025
New release of hexapdf-extras to make it compatible with HexaPDF 1.0. The API docs now also have a visual example of a Swiss QR bill - hexapdf-extras.gettalong.org/api/HexaPDF/...
hexapdf-extras.gettalong.org
HexaPDF Extras: HexaPDF::Extras::Layout::SwissQRBill
Additional functionality for the HexaPDF library
000
Reposted by Thomas Leitner
Eric Wastl @was.tl · 30/11/2024
🎄 T-24 hours until #AdventOfCode 2024! 🎄
825246
Thomas Leitner @gettalong.bsky.social · 18/11/2024
New version of kramdown released! kramdown.gettalong.org/news.html
kramdown.gettalong.org
News | kramdown
kramdown is a fast, pure-Ruby Markdown-superset converter
010
Thomas Leitner @gettalong.bsky.social · 17/11/2024
Initial post.
040