
One Document Language, Many Formats: Separating the Layout Engine from PDFBox and Apache POI
In an earlier post about GraphCompose I described how I borrowed ideas from unrelated corners of software development and tried to apply them to document generation: a declarative DSL, a separate layout pass, snapshot tests, and a bit of ECS thinking. Back then GraphCompose mostly looked like a PDF engine. That was fair. The only real backend was PDF, PDFBox did the work underneath, and support for other formats lived somewhere between the roadmap and the classic developer promise of yes, I’ll definitely get to that later. But I never set out to build another library that can only produce PDF. The original idea was different: ...






