frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Show HN: Bhowra Ink – C# HTML-to-PDF Under 1 MB, Azure Functions Consumption

https://bhowra.com/bhowra-ink.html
4•dillu_spur•1h ago

Comments

dillu_spur•1h ago
Author here. Most .NET HTML-to-PDF options are either a headless-Chromium wrapper (150-400 MB, multi-second cold starts, painful or blocked on Azure Functions Windows Consumption) or an AGPL/commercial library with a dependency tree.

Bhowra.Ink is a from-scratch pure-C# engine: one managed .NET 8 DLL of 913 KB, zero NuGet dependencies, no native binaries, no P/Invoke. It renders HTML5 + CSS (Grid, Flexbox, gradients, transforms, SVG) to PDF in-process.

The playground linked above is itself running on an Azure Functions Windows Consumption plan (Y1/Dynamic), .NET 8, scaled to zero instances. So the cold start you get clicking it is the real one, not a warmed-up demo.

Zero dependencies is literal: the .nupkg is one DLL in lib/net8.0, an empty dependency group, no runtimes/ folder. The only platform-specific call in the codebase is a registry read guarded by OperatingSystem.IsWindows().

Sandbox-friendly by construction: converting to a byte[] touches no disk, and the bundled fonts are embedded resources inside the DLL rather than files on disk. Licensing also has an offline path - hand it a signed token via an env var and it never makes a network call, which matters if your egress is blocked.

Other things it does: ~50 ms warm path for a typical invoice and ~1 s cold start including JIT; Arabic/Hebrew via real OpenType GSUB/GPOS shaping with word-level UAX #9 bidi; Devanagari shaping; PDF/A-2b, PDF/A-3b, PDF/UA-1 tagging, AES-256 (V5/R6, AESV3); Factur-X / ZUGFeRD embedding; byte-identical output if you pin CreatedOn. Full suite runs green on Windows and Linux in CI.

Deliberately not supported, so you don't waste time discovering it:

No JavaScript. <script> is skipped, a script-drawn <canvas> renders as an empty box, no CSS animations/transitions/:hover/:focus, no video/audio. It degrades gracefully rather than crashing, but if your document needs a JS runtime this is the wrong tool.

Indic beyond Devanagari is not shaped - Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada, Malayalam and Lao are left unrendered rather than drawn wrong. They surface in FontDiagnostics, never silently dropped. CJK isn't bundled either; register a font.

The bidi is a word-level approximation of UAX #9, not the full algorithm - no bracket pairs, no nested embedding levels.

Factur-X and ZATCA are document-layer only: it embeds and tags your XML and packs your TLV values, and never generates, validates, signs or submits invoice XML. PDF/A is levels 2b and 3b only. Encryption emits AES-256 but /P is hardcoded allow-all, so there's no restrict-printing/copying API yet.

NuGet (latest 1.0.9): https://www.nuget.org/packages/Bhowra.Ink

    dotnet add package Bhowra.Ink

    using Bhowra.Ink;
    byte[] pdf = HtmlConverter.ConvertToBytes(html);
Commercial, with a fully functional watermarked trial - no page limit, no expiry. Flat annual pricing, no per-document fees, no AGPL.

Happy to answer anything about the layout engine, the font stack, or the serverless side.

Show HN: Restoredrill – proves your Postgres backups restore

https://github.com/ahmadpiran/restoredrill
19•ahmadpiran•1h ago•7 comments

Show HN: RealDiff – runtime behavior diffing for pull requests (six languages)

https://github.com/issacnitin/RealDiff
29•issacnitin•2h ago•4 comments

Show HN: The load-bearing vocabulary of Claude

https://louisabraham.github.io/load-bearing/
83•Labo333•7h ago•31 comments

Show HN: IdeaKache – Ideas Worth Holding Onto

https://ideakache.com
3•jcowcher•13m ago•1 comments

Show HN: Meridian(PH#1) A better way to recognize developer contributions

https://github.com/Meridiona/meridian
4•meridiona•28m ago•0 comments

Show HN: PwnPad – hardware hacking platform built for practical learning

https://github.com/twelvesec/PwnPad
2•therepanic•29m ago•0 comments

Show HN: I built a site to share and find Claude Code passes

https://claudecoupons.com
2•alexander-g•31m ago•0 comments

Show HN: Warp – Run the 313B GLM-5.3-Flash on a MacBook with 8GB RAM

2•marcobambini•33m ago•0 comments

Show HN: KinoPipe – FFmpeg as a service for AI agents (typed ops, no shell)

https://kinopipe.com/
2•nicniclapanique•42m ago•0 comments

Show HN: Atlas – observability for startup operations via self-building agents

https://www.atlasjoins.ai/
2•csbhagav•49m ago•0 comments

Show HN: Feisty Duck's Cryptography and Security News Aggregator

https://www.feistyduck.com/news/
2•ivanr•49m ago•0 comments

Show HN: Backprompter – create, test, and deploy agents without a back end

https://backprompter.com/
2•aj-srivastava•53m ago•0 comments

Show HN: A virtual race car that drives only while someone pays for fuel

https://fuelup.lol/
3•bombashell•53m ago•1 comments

Show HN: Kitewing marketing site, inspired by Braun industrial design ca. 1968

https://www.kitewing.ai/
2•hglaser•53m ago•0 comments

Show HN: Relay Tetris

https://minivac.greg.technology/tetris/
2•gregsadetsky•55m ago•0 comments

Show HN: ThunderPhone v2 – a new architecture for voice AI

https://thunderphone.com
4•kolchinski•1h ago•0 comments

Show HN: Git for Designers

https://opacity.com/
2•x7ikmet•1h ago•0 comments

Show HN: Revenue Agents that monitor churn, upsell, and deal risk

https://www.rimplo.com/
2•Hoss-Elkhateeb•1h ago•0 comments

Show HN: TermDrop – Stream a local file to a remote server with one curl command

https://termdrop.sh/
2•npartin•1h ago•0 comments

Show HN: Kupendo – Dating and networking app for the African diaspora

https://www.kupendo.co/
2•GodsentIzzy98•1h ago•2 comments

Show HN: Banana Peel – OpenRouter for browser agents

https://bananapeel.com/
2•ygabriel27•1h ago•1 comments

Show HN: Proval – Self-hosted code review agent for GitLab, Forgejo, and GitHub

https://github.com/seoes/proval
2•dowonseo•1h ago•1 comments

Show HN: bAIseball.org – Google for historical baseball stats

https://baiseball.org/
4•jaypinho•1h ago•1 comments

Show HN: Spore – run local models on your own hardware, use them from anywhere

https://sporeintel.com/
3•chrisischris•1h ago•2 comments

Show HN: All my mail accounts in one read-only MCP server, usable from my phone

https://github.com/wildsurfer/your-mail-mcp
3•yesplease_boats•1h ago•0 comments

Show HN: Bhowra Ink – C# HTML-to-PDF Under 1 MB, Azure Functions Consumption

https://bhowra.com/bhowra-ink.html
4•dillu_spur•1h ago•1 comments

Show HN: Turn ad-hoc subagents into durable, accountable AI teams

https://github.com/ringlochid/oh-my-subagents
2•ringlochid•1h ago•0 comments

Show HN: Forkbench – the agent gets the API call, not the key (macOS)

https://forkbench.com
2•forkbench•1h ago•0 comments

Show HN: Vertex, your personal archiver and annotator

https://vertexapp.io/onboarding
4•asheshambasta•2h ago•2 comments

Show HN: One source of truth for agent configs across repos

https://theagencyhq.dev/
3•voidmain42•2h ago•1 comments