The Picnic Table Builder library provides a TableBuilder
API for
Java & Co. to create HTML-like tables that are nice looking when
rendered as Unicode or ASCII. The provided TableBuilder
is a
Java-shim over Jake Wharton's great Picnic Tables (picnic)
library. Unfortunately,
picnic itself is not accessible from Scala (apparently due to its
usage of Kotlin's @set:JvmSynthetic
annotation). Picnic Table
Builder, i.e., this library, solves this issue. It furthermore
provides an IMHO more idiomatic and easier to use builder API than
upstream does.
Originally submitted for upstream inclusion as Picnic PR #33, it is now released as standalone library.
Table table = eu.geekplace.picnic.TableBuilder.create()
.withTableStyle()
.setBorderStyle(Hidden)
.endTableStyle()
.withCellStyle()
.setAlignment(MiddleRight)
.setPaddingLeft(1)
.setPaddingRight(1)
.setBorderLeft(true)
.setBorderRight(true)
.endCellStyle()
.withHeader()
.withCellStyle()
.setBorder(true)
.setAlignment(BottomLeft)
.endCellStyle()
.addRow()
.addCell("APK")
.setRowSpan(2)
.endCell()
.addCell("compressed")
.setColumnSpan(3)
.withCellStyle()
.setAlignment(BottomCenter)
.endCellStyle()
.endCell()
.addCell("uncompressed")
.setColumnSpan(3)
.withCellStyle()
.setAlignment(BottomCenter)
.endCellStyle()
.endCell()
.endRow()
.addRow("old", "new", "diff", "old", "new", "diff")
.endHeader()
.withBody()
.addRow("dex", "664.8 KiB", "664.8 KiB", "-25 B", "1.5 MiB", "1.5 MiB", "-112 B")
.addRow("arsc", "201.7 KiB", "201.7 KiB", "0 B", "201.6 KiB", "201.6 KiB", "0 B")
.addRow("manifest", "1.4 KiB", "1.4 KiB", "0 B", "4.2 KiB", "4.2 KiB", "0 B")
.addRow("res", "418.2 KiB", "418.2 KiB", "-14 B", "488.3 KiB", "488.3 KiB", "0 B")
.addRow("asset", "0 B", "0 B", "0 B", "0 B", "0 B", "0 B")
.addRow("other", "37.1 KiB", "37.1 KiB", "0 B", "36.3 KiB", "36.3 KiB", "0 B")
.endBody()
.withFooter()
.withCellStyle()
.setBorder(true)
.endCellStyle()
.addRow("total", "1.3 MiB", "1.3 MiB", "-39 B", "2.2 MiB", "2.2 MiB", "-112 B")
.endFooter()
.build();
Where table.toString()
yields:
│ compressed │ uncompressed
├───────────┬───────────┬───────┼───────────┬───────────┬────────
APK │ old │ new │ diff │ old │ new │ diff
──────────┼───────────┼───────────┼───────┼───────────┼───────────┼────────
dex │ 664.8 KiB │ 664.8 KiB │ -25 B │ 1.5 MiB │ 1.5 MiB │ -112 B
arsc │ 201.7 KiB │ 201.7 KiB │ 0 B │ 201.6 KiB │ 201.6 KiB │ 0 B
manifest │ 1.4 KiB │ 1.4 KiB │ 0 B │ 4.2 KiB │ 4.2 KiB │ 0 B
res │ 418.2 KiB │ 418.2 KiB │ -14 B │ 488.3 KiB │ 488.3 KiB │ 0 B
asset │ 0 B │ 0 B │ 0 B │ 0 B │ 0 B │ 0 B
other │ 37.1 KiB │ 37.1 KiB │ 0 B │ 36.3 KiB │ 36.3 KiB │ 0 B
──────────┼───────────┼───────────┼───────┼───────────┼───────────┼────────
total │ 1.3 MiB │ 1.3 MiB │ -39 B │ 2.2 MiB │ 2.2 MiB │ -112 B
This library is available on Maven Central.
implementation 'eu.geekplace:picnic-table-builder:<version>'
This project is licensed under the Apache License 2.0.