feat: add Java JRXML-to-PNG rendering pipeline with pixel-level SSIM comparison
- lib/java/: Java renderer (JrxmlRenderer) using JasperReports 6.21.0 - JrxmlDebug for diagnostics, JrxmlGen for format reference - download_jars.sh for one-time dependency setup - agent/nodes.py: _render_jrxml_to_png() and _compute_pixel_similarity() - Pixel comparison integrates into validate node (SSIM < 0.4 fails) - Pixel fidelity context injected into correct_jrxml for targeted fixes - tests/test_pixel_comparison.py: 15 unit tests (render, SSIM, integration) - .gitignore: exclude lib/java/*.jar, lib/java/*.class, tmp/ - CLAUDE.md: v11 changelog documenting the rendering pipeline - All non-LLM tests pass (97/97)
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
# Download JasperReports 6.21.0 and dependencies for JRXML-to-PNG rendering.
|
||||
# Run this once after cloning the repo.
|
||||
set -e
|
||||
|
||||
BASE="https://repo1.maven.org/maven2"
|
||||
|
||||
JARS=(
|
||||
"net/sf/jasperreports/jasperreports/6.21.0/jasperreports-6.21.0.jar"
|
||||
"commons-logging/commons-logging/1.3.5/commons-logging-1.3.5.jar"
|
||||
"org/apache/commons/commons-collections4/4.5.0/commons-collections4-4.5.0.jar"
|
||||
"commons-beanutils/commons-beanutils/1.10.1/commons-beanutils-1.10.1.jar"
|
||||
"org/apache/commons/commons-lang3/3.17.0/commons-lang3-3.17.0.jar"
|
||||
"commons-digester/commons-digester/2.1/commons-digester-2.1.jar"
|
||||
"com/lowagie/itext/2.1.7/itext-2.1.7.jar"
|
||||
"org/jfree/jfreechart/1.5.5/jfreechart-1.5.5.jar"
|
||||
"org/eclipse/jdt/ecj/3.38.0/ecj-3.38.0.jar"
|
||||
)
|
||||
|
||||
for jar in "${JARS[@]}"; do
|
||||
fname=$(basename "$jar")
|
||||
if [ -f "$fname" ]; then
|
||||
echo "SKIP: $fname (exists)"
|
||||
else
|
||||
echo "DOWNLOAD: $fname"
|
||||
curl -sL -o "$fname" "$BASE/$jar"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "All JARs ready. Compile with:"
|
||||
echo " javac -cp \"jasperreports-6.21.0.jar;...\" JrxmlRenderer.java"
|
||||
echo " java -cp \".;jasperreports-6.21.0.jar;...\" JrxmlRenderer input.jrxml output.png 2.0"
|
||||
Reference in New Issue
Block a user