A Java library for parsing Gerber RS-274X and Excellon drill files with SVG rendering.
- Parse Gerber RS-274X files (.gbr, .ger, .gtl, .gbl, .gts, .gbs, .gto, .gbo, etc.)
- Parse Excellon drill files (.drl, .txt, .xln)
- Render PCB layers as SVG with proper scaling
- Support for all standard apertures (circle, rectangle, obround, polygon)
- Aperture macros with primitives (circle, line, outline, polygon, moire, thermal)
- Region fills (G36/G37)
- Arc interpolation (G02/G03) with single and multi-quadrant modes
- Layer polarity (LPD/LPC)
- Step and repeat (SR)
- Interactive web viewer with pan/zoom
- Toggle individual layers on/off
- Multi-layer composite rendering
mvn clean install
mvn exec:java -Dexec.mainClass="nl.bytesoflife.gerber.web.GerberViewerServer"Open http://localhost:8080 and upload a Gerber ZIP archive.
The library includes a comprehensive visual test for aperture rendering that compares our implementation against reference images.
src/main/java/nl/bytesoflife/gerber/parser- Gerber and Excellon parserssrc/main/java/nl/bytesoflife/gerber/lexer- Tokenizer for Gerber filessrc/main/java/nl/bytesoflife/gerber/model- Data model for Gerber documentssrc/main/java/nl/bytesoflife/gerber/svg- SVG rendering enginesrc/main/java/nl/bytesoflife/gerber/web- Web viewer server
// Parse a Gerber file
GerberParser parser = new GerberParser();
GerberDocument doc = parser.parse(gerberContent);
// Render to SVG
GerberToSvgConverter converter = new GerberToSvgConverter();
String svg = converter.convert(doc);
// Parse an Excellon drill file
ExcellonParser drillParser = new ExcellonParser();
ExcellonDocument drillDoc = drillParser.parse(excellonContent);MIT
