Skip to content

Commit 01da522

Browse files
authored
Merge pull request #6 from fugerit-org/5-xml-configuration-font-loading
5 xml configuration font loading
2 parents fe60d39 + be73749 commit 01da522

16 files changed

+132
-160
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Changed
1111

12+
- fj-doc-freemarker dependency
13+
- xml font configuration
14+
15+
### Changed
16+
1217
- fj-doc version set to 3.3.0
1318
- openpdf version 1.3.36
1419

pom.xml

+7-2
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,13 @@
5555
<dependency>
5656
<groupId>org.fugerit.java</groupId>
5757
<artifactId>fj-doc-base</artifactId>
58-
</dependency>
59-
58+
</dependency>
59+
60+
<dependency>
61+
<groupId>org.fugerit.java</groupId>
62+
<artifactId>fj-doc-freemarker</artifactId>
63+
</dependency>
64+
6065
</dependencies>
6166

6267
<organization>

src/main/java/org/fugerit/java/doc/mod/openpdf/HtmlTypeHandler.java

+9
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,18 @@
33
import java.io.ByteArrayOutputStream;
44
import java.io.OutputStream;
55

6+
import org.fugerit.java.core.cfg.ConfigException;
67
import org.fugerit.java.doc.base.config.DocInput;
78
import org.fugerit.java.doc.base.config.DocOutput;
89
import org.fugerit.java.doc.base.config.DocTypeHandler;
910
import org.fugerit.java.doc.base.config.DocTypeHandlerDefault;
1011
import org.fugerit.java.doc.base.model.DocBase;
12+
import org.fugerit.java.doc.mod.openpdf.helpers.OpenPDFConfigHelper;
1113
import org.fugerit.java.doc.mod.openpdf.helpers.OpenPpfDocHandler;
1214

1315
import com.lowagie.text.Document;
1416
import com.lowagie.text.html.HtmlWriter;
17+
import org.w3c.dom.Element;
1518

1619
public class HtmlTypeHandler extends DocTypeHandlerDefault {
1720

@@ -40,4 +43,10 @@ public void handle(DocInput docInput, DocOutput docOutput) throws Exception {
4043
outputStream.close();
4144
}
4245

46+
@Override
47+
protected void handleConfigTag(Element config) throws ConfigException {
48+
super.handleConfigTag(config);
49+
OpenPDFConfigHelper.handleConfig( config, this.getType() );
50+
}
51+
4352
}

src/main/java/org/fugerit/java/doc/mod/openpdf/PdfTypeHandler.java

+8
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,19 @@
33
import java.io.ByteArrayOutputStream;
44
import java.io.OutputStream;
55

6+
import org.fugerit.java.core.cfg.ConfigException;
67
import org.fugerit.java.doc.base.config.DocInput;
78
import org.fugerit.java.doc.base.config.DocOutput;
89
import org.fugerit.java.doc.base.config.DocTypeHandler;
910
import org.fugerit.java.doc.base.config.DocTypeHandlerDefault;
1011
import org.fugerit.java.doc.base.model.DocBase;
12+
import org.fugerit.java.doc.mod.openpdf.helpers.OpenPDFConfigHelper;
1113
import org.fugerit.java.doc.mod.openpdf.helpers.OpenPpfDocHandler;
1214

1315
import com.lowagie.text.Document;
1416
import com.lowagie.text.PageSize;
1517
import com.lowagie.text.pdf.PdfWriter;
18+
import org.w3c.dom.Element;
1619

1720
public class PdfTypeHandler extends DocTypeHandlerDefault {
1821

@@ -59,4 +62,9 @@ public void handle(DocInput docInput, DocOutput docOutput) throws Exception {
5962
outputStream.close();
6063
}
6164

65+
@Override
66+
protected void handleConfigTag(Element config) throws ConfigException {
67+
super.handleConfigTag(config);
68+
OpenPDFConfigHelper.handleConfig( config, this.getType() );
69+
}
6270
}

src/main/java/org/fugerit/java/doc/mod/openpdf/RtfTypeHandler.java

+10-1
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,19 @@
33
import java.io.ByteArrayOutputStream;
44
import java.io.OutputStream;
55

6+
import org.fugerit.java.core.cfg.ConfigException;
67
import org.fugerit.java.doc.base.config.DocInput;
78
import org.fugerit.java.doc.base.config.DocOutput;
89
import org.fugerit.java.doc.base.config.DocTypeHandler;
910
import org.fugerit.java.doc.base.config.DocTypeHandlerDefault;
1011
import org.fugerit.java.doc.base.model.DocBase;
12+
import org.fugerit.java.doc.mod.openpdf.helpers.OpenPDFConfigHelper;
1113
import org.fugerit.java.doc.mod.openpdf.helpers.OpenPpfDocHandler;
1214

1315
import com.lowagie.text.Document;
1416
import com.lowagie.text.PageSize;
1517
import com.lowagie.text.rtf.RtfWriter2;
18+
import org.w3c.dom.Element;
1619

1720
public class RtfTypeHandler extends DocTypeHandlerDefault {
1821

@@ -34,7 +37,7 @@ public void handle(DocInput docInput, DocOutput docOutput) throws Exception {
3437
String[] margins = docBase.getInfo().getProperty( "margins", "20;20;20;20" ).split( ";" );
3538
Document document = new Document( PageSize.A4, Integer.parseInt( margins[0] ),
3639
Integer.parseInt( margins[1] ),
37-
Integer.parseInt( margins[2] ),
40+
Integer.parseInt( margins[2] ),
3841
Integer.parseInt( margins[3] ) );
3942
ByteArrayOutputStream baos = new ByteArrayOutputStream();
4043
RtfWriter2 rtfWriter2 = RtfWriter2.getInstance( document, baos );
@@ -45,4 +48,10 @@ public void handle(DocInput docInput, DocOutput docOutput) throws Exception {
4548
outputStream.close();
4649
}
4750

51+
@Override
52+
protected void handleConfigTag(Element config) throws ConfigException {
53+
super.handleConfigTag(config);
54+
OpenPDFConfigHelper.handleConfig( config, this.getType() );
55+
}
56+
4857
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package org.fugerit.java.doc.mod.openpdf.helpers;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
import org.fugerit.java.core.cfg.ConfigException;
5+
import org.w3c.dom.Element;
6+
import org.w3c.dom.NodeList;
7+
8+
@Slf4j
9+
public class OpenPDFConfigHelper {
10+
11+
private OpenPDFConfigHelper() {}
12+
13+
public static final String TAG_NAME_FONT = "font";
14+
15+
public static final String ATT_NAME = "name";
16+
public static final String ATT_PATH = "path";
17+
18+
19+
public static void handleConfig( Element config, String type ) throws ConfigException {
20+
log.info( "configure for type: {}", type );
21+
NodeList fontList = config.getElementsByTagName( TAG_NAME_FONT );
22+
for ( int k=0; k<fontList.getLength(); k++ ) {
23+
Element currentFontTag = (Element) fontList.item( k );
24+
String name = currentFontTag.getAttribute( ATT_NAME );
25+
String path = currentFontTag.getAttribute( ATT_PATH );
26+
log.info( "current font {} - {}", name, path );
27+
ConfigException.apply( () -> OpenPpfDocHandler.registerFont( name , path ) );
28+
}
29+
}
30+
31+
}

src/test/java/test/org/fugerit/java/doc/mod/itext/poc/TestSpec.java

-31
This file was deleted.

src/test/java/test/org/fugerit/java/doc/mod/itext/poc/PocIndex.java src/test/java/test/org/fugerit/java/doc/mod/openpdf/poc/PocIndex.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package test.org.fugerit.java.doc.mod.itext.poc;
1+
package test.org.fugerit.java.doc.mod.openpdf.poc;
22

33
import java.awt.Color;
44
import java.io.FileOutputStream;

src/test/java/test/org/fugerit/java/doc/mod/itext/poc/TestDefaultDoc.java src/test/java/test/org/fugerit/java/doc/mod/openpdf/poc/TestDefaultDoc.java

+2-11
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package test.org.fugerit.java.doc.mod.itext.poc;
1+
package test.org.fugerit.java.doc.mod.openpdf.poc;
22

33
import org.fugerit.java.core.cfg.ConfigRuntimeException;
44
import org.fugerit.java.doc.mod.openpdf.HtmlTypeHandler;
@@ -14,16 +14,7 @@
1414
public class TestDefaultDoc extends TestDocBase {
1515

1616
private static final String CUSTOM_FONT = "TitilliumWeb";
17-
18-
@BeforeClass
19-
public static void init() {
20-
try {
21-
OpenPpfDocHandler.registerFont( CUSTOM_FONT , "src/test/resources/font/TitilliumWeb-Regular.ttf");
22-
} catch (Exception e) {
23-
throw new ConfigRuntimeException( e );
24-
}
25-
}
26-
17+
2718
private static final String DEFAULT_DOC = "default_doc";
2819

2920
private static final String DEFAULT_DOC_ALT = "default_doc_alt";

src/test/java/test/org/fugerit/java/doc/mod/itext/poc/TestDocBase.java src/test/java/test/org/fugerit/java/doc/mod/openpdf/poc/TestDocBase.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package test.org.fugerit.java.doc.mod.itext.poc;
1+
package test.org.fugerit.java.doc.mod.openpdf.poc;
22

33
import static org.junit.Assert.fail;
44

@@ -13,10 +13,14 @@
1313
import org.fugerit.java.doc.base.config.DocTypeHandler;
1414

1515
import lombok.extern.slf4j.Slf4j;
16+
import org.fugerit.java.doc.freemarker.process.FreemarkerDocProcessConfig;
17+
import org.fugerit.java.doc.freemarker.process.FreemarkerDocProcessConfigFacade;
1618

1719
@Slf4j
1820
public class TestDocBase {
1921

22+
private FreemarkerDocProcessConfig config = FreemarkerDocProcessConfigFacade.loadConfigSafe( "cl://fm-test-mod-openpdf-config.xml" );
23+
2024
protected boolean testDocWorker( String testCase, DocTypeHandler handler ) {
2125
boolean ok = false;
2226
String inputXml = "xml/"+testCase+".xml" ;

src/test/java/test/org/fugerit/java/doc/mod/itext/poc/TestOpenPdfHelper.java src/test/java/test/org/fugerit/java/doc/mod/openpdf/poc/TestOpenPdfHelper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package test.org.fugerit.java.doc.mod.itext.poc;
1+
package test.org.fugerit.java.doc.mod.openpdf.poc;
22

33
import org.fugerit.java.doc.mod.openpdf.helpers.PhraseParent;
44
import org.junit.Assert;

src/test/java/test/org/fugerit/java/doc/mod/itext/poc/TestPdfHelper.java src/test/java/test/org/fugerit/java/doc/mod/openpdf/poc/TestPdfHelper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package test.org.fugerit.java.doc.mod.itext.poc;
1+
package test.org.fugerit.java.doc.mod.openpdf.poc;
22

33
import org.fugerit.java.core.cfg.ConfigRuntimeException;
44
import org.fugerit.java.doc.mod.openpdf.helpers.OpenPdfFontHelper;

src/test/java/test/org/fugerit/java/doc/mod/itext/poc/TestPhraseParent.java src/test/java/test/org/fugerit/java/doc/mod/openpdf/poc/TestPhraseParent.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package test.org.fugerit.java.doc.mod.itext.poc;
1+
package test.org.fugerit.java.doc.mod.openpdf.poc;
22

33
import java.util.Properties;
44

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package test.org.fugerit.java.doc.mod.openpdf.poc;
2+
3+
import org.fugerit.java.doc.mod.openpdf.PdfTypeHandler;
4+
import org.junit.Assert;
5+
import org.junit.Test;
6+
7+
public class TestSpec extends TestDocBase {
8+
9+
private static final String DEFAULT_DOC = "test";
10+
11+
@Test
12+
public void testOpenPDF() {
13+
boolean ok = this.testDocWorker( DEFAULT_DOC , PdfTypeHandler.HANDLER );
14+
Assert.assertTrue(ok);
15+
}
16+
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<freemarker-doc-process-config
3+
xmlns="https://freemarkerdocprocess.fugerit.org"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="https://freemarkerdocprocess.fugerit.org https://www.fugerit.org/data/java/doc/xsd/freemarker-doc-process-1-0.xsd" >
6+
7+
<docHandlerConfig registerById="true">
8+
<docHandler id="pdf_openpdf" info="pdf" type="org.fugerit.java.doc.mod.openpdf.PdfTypeHandler">
9+
<docHandlerCustomConfig charset="UTF-8">
10+
<font name="TitilliumWeb" path="src/test/resources/font/TitilliumWeb-Regular.ttf"/>
11+
</docHandlerCustomConfig>
12+
</docHandler>
13+
<docHandler id="rtf_openpdf" info="rtf" type="org.fugerit.java.doc.mod.openpdf.RtfTypeHandler">
14+
<docHandlerCustomConfig charset="UTF-8"/>
15+
</docHandler>
16+
<docHandler id="html_openpdf" info="html" type="org.fugerit.java.doc.mod.openpdf.HtmlTypeHandler">
17+
<docHandlerCustomConfig charset="UTF-8"/>
18+
</docHandler>
19+
</docHandlerConfig>
20+
21+
</freemarker-doc-process-config>

src/test/resources/xml/test.xml

+13-110
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)