Skip to content

Commit 67305b2

Browse files
committed
[mod-fop] supporto for table cell back-color attribute
1 parent 25b57db commit 67305b2

File tree

5 files changed

+111
-1
lines changed

5 files changed

+111
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Changed
1111

12+
- [mod-fop] supporto for table cell back-color attribute
1213
- [playground-quarkus] quarkus-version set to 3.6.0
1314

1415
## [3.2.1] - 2023-11-22

fj-doc-mod-fop/src/main/resources/fj_doc_mod_fop_config/template/macro/doc_element.ftl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
<#list rowList as row>
8989
<fo:table-row>
9090
<#list row.elementList as cell>
91-
<fo:table-cell<@addCssValue name='padding' value=docTable.padding def=0 unit='mm'/><@addCssValue name='margin' value=docTable.padding def=0 unit='mm'/><@handleAlign alignValue=cell.align/><@handleVerticalAlign valignValue=cell.valign/><@handleBorders docBorders=cell.docBorders/><@handleCellSpan cell=cell/>>
91+
<fo:table-cell<#if (cell.backColor??)> background-color="${cell.backColor}" </#if><@addCssValue name='padding' value=docTable.padding def=0 unit='mm'/><@addCssValue name='margin' value=docTable.padding def=0 unit='mm'/><@handleAlign alignValue=cell.align/><@handleVerticalAlign valignValue=cell.valign/><@handleBorders docBorders=cell.docBorders/><@handleCellSpan cell=cell/>>
9292
<#if (cell.elementList?size > 0)>
9393
<#list cell.elementList as cellElement>
9494
<@handleElement current=cellElement/>
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package test.org.fugerit.java.doc.mod.fop;
2+
3+
import java.io.FileOutputStream;
4+
import java.io.InputStreamReader;
5+
6+
import org.fugerit.java.core.function.SafeFunction;
7+
import org.fugerit.java.core.lang.helpers.ClassHelper;
8+
import org.fugerit.java.doc.base.config.DocInput;
9+
import org.fugerit.java.doc.base.config.DocOutput;
10+
import org.fugerit.java.doc.base.config.DocTypeHandler;
11+
import org.fugerit.java.doc.mod.fop.FreeMarkerFopTypeHandlerUTF8;
12+
import org.fugerit.java.doc.mod.fop.InitFopHandler;
13+
import org.fugerit.java.doc.mod.fop.PdfFopTypeHandler;
14+
import org.junit.Assert;
15+
import org.junit.BeforeClass;
16+
import org.junit.Test;
17+
18+
import lombok.extern.slf4j.Slf4j;
19+
import test.org.fugerit.java.BasicTest;
20+
21+
@Slf4j
22+
public class TestAlt extends BasicTest {
23+
24+
@BeforeClass
25+
public static void init() {
26+
SafeFunction.apply( () -> InitFopHandler.initDoc() );
27+
}
28+
29+
private boolean testHelper( DocTypeHandler handler ) {
30+
boolean ok = false;
31+
try ( InputStreamReader reader = new InputStreamReader( ClassHelper.loadFromDefaultClassLoader( "sample/doc_alt_01.xml" ) );
32+
FileOutputStream fos = new FileOutputStream( "target/test_alt_01."+handler.getType() ) ) {
33+
handler.handle( DocInput.newInput( handler.getType(), reader ) , DocOutput.newOutput( fos ) );
34+
ok = true;
35+
log.info( "result {}", ok );
36+
} catch (Exception e) {
37+
this.failEx( e );
38+
}
39+
return ok;
40+
}
41+
42+
private static final DocTypeHandler[] HANDLERS = { PdfFopTypeHandler.HANDLER, new FreeMarkerFopTypeHandlerUTF8() };
43+
44+
@Test
45+
public void testAlt001Ok() {
46+
for ( int k=0; k<HANDLERS.length; k++ ) {
47+
boolean ok = this.testHelper(HANDLERS[k]);
48+
Assert.assertTrue(ok);
49+
}
50+
}
51+
52+
}

fj-doc-mod-fop/src/test/java/test/org/fugerit/java/doc/mod/fop/TestPdfFopTypeHandler.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,18 @@
44
import java.io.InputStreamReader;
55

66
import org.fugerit.java.core.cfg.ConfigRuntimeException;
7+
import org.fugerit.java.core.function.SafeFunction;
78
import org.fugerit.java.core.lang.helpers.ClassHelper;
89
import org.fugerit.java.core.xml.dom.DOMIO;
910
import org.fugerit.java.doc.base.config.DocInput;
1011
import org.fugerit.java.doc.base.config.DocOutput;
1112
import org.fugerit.java.doc.base.config.DocTypeHandler;
1213
import org.fugerit.java.doc.mod.fop.FopConfig;
1314
import org.fugerit.java.doc.mod.fop.FopConfigDefault;
15+
import org.fugerit.java.doc.mod.fop.InitFopHandler;
1416
import org.fugerit.java.doc.mod.fop.PdfFopTypeHandler;
1517
import org.junit.Assert;
18+
import org.junit.BeforeClass;
1619
import org.junit.Test;
1720
import org.w3c.dom.Document;
1821

@@ -22,6 +25,11 @@
2225
@Slf4j
2326
public class TestPdfFopTypeHandler extends BasicTest {
2427

28+
@BeforeClass
29+
public static void init() {
30+
SafeFunction.apply( () -> InitFopHandler.initDocAsync() );
31+
}
32+
2533
private boolean testHelper( DocTypeHandler handler ) {
2634
boolean ok = false;
2735
try ( InputStreamReader reader = new InputStreamReader( ClassHelper.loadFromDefaultClassLoader( "sample/doc_test_01.xml" ) );
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<doc xmlns="http://javacoredoc.fugerit.org"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://javacoredoc.fugerit.org https://www.fugerit.org/data/java/doc/xsd/doc-1-10.xsd">
4+
<metadata>
5+
<info name="margins">10;10;10;30</info>
6+
<info name="excel-table-id">excel-table=print</info>
7+
<info name="excel-width-multiplier">450</info>
8+
<footer-ext>
9+
<para align="center">Page ${currentPage}</para>
10+
</footer-ext>
11+
</metadata>
12+
<body>
13+
<table columns="3" colwidths="30;30;40" id="excel-table" padding="2" width="100">
14+
<row>
15+
<cell align="center" back-color="#99aaee">
16+
<para>Name</para>
17+
</cell>
18+
<cell align="center" back-color="#99aaee">
19+
<para>Surname</para>
20+
</cell>
21+
<cell align="center" back-color="#99aaee">
22+
<para>Title</para>
23+
</cell>
24+
</row>
25+
<row>
26+
<cell>
27+
<para>Luthien</para>
28+
</cell>
29+
<cell>
30+
<para>Tinuviel</para>
31+
</cell>
32+
<cell>
33+
<para>Queen</para>
34+
</cell>
35+
</row>
36+
<row>
37+
<cell>
38+
<para>Thorin</para>
39+
</cell>
40+
<cell>
41+
<para>Oakshield</para>
42+
</cell>
43+
<cell>
44+
<para>King</para>
45+
</cell>
46+
</row>
47+
</table>
48+
</body>
49+
</doc>

0 commit comments

Comments
 (0)