Skip to content

Commit 7efe210

Browse files
committed
Added PDFA output format in playground
1 parent 5f4a209 commit 7efe210

File tree

12 files changed

+102
-7
lines changed

12 files changed

+102
-7
lines changed

docgen/release-notes.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
1.4.0-rc.001 (2023-07-29)
1+
1.X.X-rc.001 (2023-XX-XX)
2+
------------------
3+
+ Added PDFA output format in playground
4+
5+
1.4.0-rc.001 (2023-07-29)
26
------------------
37
+ [Added native support for GraalVM in core modules (fj-doc-base and fj-doc-freemarker)](https://github.com/fugerit-org/fj-doc/issues/39)
48
+ [[fj-doc-mod-fop] support for last page constant ${pageCount}](https://github.com/fugerit-org/fj-doc/issues/47)

fj-doc-freemarker/src/main/java/org/fugerit/java/doc/freemarker/process/FreemarkerDocProcessConfigFacade.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ private static DocTypeHandler createHelper( Element docHandlerConfig ) throws Co
9898
}
9999

100100
public static FreemarkerDocProcessConfig loadConfigSafe( String configPath ) {
101+
log.info( "loadConfigSafe config path : {}", configPath );
101102
FreemarkerDocProcessConfig config = null;
102103
try ( Reader xmlReader = new InputStreamReader(StreamHelper.resolveStream( configPath ) ) ) {
103104
config = loadConfig(xmlReader);

fj-doc-playground-quarkus/src/main/java/org/fugerit/java/doc/playground/config/InitPlayground.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package org.fugerit.java.doc.playground.config;
22

3+
import org.fugerit.java.doc.base.config.DocTypeHandler;
34
import org.fugerit.java.doc.base.config.InitHandler;
4-
import org.fugerit.java.doc.mod.fop.PdfFopTypeHandler;
5+
import org.fugerit.java.doc.freemarker.process.FreemarkerDocProcessConfig;
6+
import org.fugerit.java.doc.freemarker.process.FreemarkerDocProcessConfigFacade;
57

68
import io.quarkus.runtime.StartupEvent;
79
import jakarta.enterprise.context.ApplicationScoped;
@@ -11,12 +13,18 @@
1113
@Slf4j
1214
@ApplicationScoped
1315
public class InitPlayground {
14-
15-
public static final PdfFopTypeHandler PDF_FOP_TYPE_HANDLER = new PdfFopTypeHandler();
1616

17-
void onStart(@Observes StartupEvent ev) {
17+
private static final FreemarkerDocProcessConfig PROCESS_CONFIG = FreemarkerDocProcessConfigFacade.loadConfigSafe( "cl://playground-config/fm-playground-doc-process.xml" );
18+
19+
public static final DocTypeHandler PDF_FOP_TYPE_HANDLER = PROCESS_CONFIG.getFacade().findHandler( "pdf-fop" );
20+
21+
public static final DocTypeHandler PDFA_FOP_TYPE_HANDLER = PROCESS_CONFIG.getFacade().findHandler( "PDF/A-1a" );
22+
23+
void onStart(@Observes StartupEvent ev) {
1824
log.info( "InitPlayground start" );
1925
InitHandler.initDocAsync( PDF_FOP_TYPE_HANDLER );
26+
log.info( "InitPlayground PDF_FOP_TYPE_HANDLER -> {}", PDF_FOP_TYPE_HANDLER );
27+
log.info( "InitPlayground PDFA_FOP_TYPE_HANDLER -> {}", PDFA_FOP_TYPE_HANDLER );
2028
log.info( "InitPlayground end" );
2129
}
2230

fj-doc-playground-quarkus/src/main/java/org/fugerit/java/doc/playground/doc/GenerateRest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ private DocTypeHandler findHandler( BasicInput input ) {
6464
handler = XlsxPoiTypeHandler.HANDLER;
6565
} else if ( "HTML".equalsIgnoreCase( input.getOutputFormat() ) ) {
6666
handler = FreeMarkerHtmlFragmentTypeHandler.HANDLER;
67+
} else if ( "PDFA".equalsIgnoreCase( input.getOutputFormat() ) ) {
68+
handler = InitPlayground.PDFA_FOP_TYPE_HANDLER;
6769
}
6870
return handler;
6971
}

fj-doc-playground-quarkus/src/main/react/src/playground/DocXmlEditor.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ class DocXmlEditor extends Component {
118118
if ( this.state.docFormat === 'HTML' ) {
119119
var decodedStringAtoB = atob(this.state.docOutput);
120120
outputData = <div contentEditable='true' dangerouslySetInnerHTML={{ __html: decodedStringAtoB }}></div>
121-
} else if ( this.state.docFormat === 'PDF' ) {
121+
} else if ( this.state.docFormat === 'PDF' || this.state.docFormat === 'PDFA' ) {
122122
let srcData = 'data:application/pdf;base64,'+ this.state.docOutput;
123123
outputData = outputData = <embed width="100%" height="600" src={srcData}/>
124124
} else if ( this.state.docFormat === 'XLSX' ) {
@@ -167,6 +167,7 @@ class DocXmlEditor extends Component {
167167
>
168168
<MenuItem value='HTML'>HTML</MenuItem>
169169
<MenuItem value='PDF'>PDF</MenuItem>
170+
<MenuItem value='PDFA'>PDF/A</MenuItem>
170171
<MenuItem value='XLSX'>XLSX</MenuItem>
171172
</Select>
172173
</FormControl>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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>
8+
<docHandler id="PDFA" info="pdf" type="org.fugerit.java.doc.mod.fop.PdfFopTypeHandler">
9+
<docHandlerCustomConfig charset="UTF-8" fop-config-mode="classloader"
10+
fop-config-classloader-path="playground-config/fop-config-pdfa.xml" pdf-a-mode="PDF/A-1a"/>
11+
</docHandler>
12+
<docHandler id="md-ext" info="md" type="org.fugerit.java.doc.base.typehandler.markdown.SimpleMarkdownExtTypeHandler" />
13+
<docHandler id="xml-doc" info="xml" type="org.fugerit.java.doc.base.config.DocTypeHandlerXMLUTF8" />
14+
<docHandler id="xls-poi" info="xls" type="org.fugerit.java.doc.mod.poi.XlsPoiTypeHandler" />
15+
<docHandler id="xlsx-poi" info="xlsx" type="org.fugerit.java.doc.mod.poi.XlsxPoiTypeHandler" />
16+
<docHandler id="fo-fop" info="fo" type="org.fugerit.java.doc.mod.fop.FreeMarkerFopTypeHandlerUTF8" />
17+
<docHandler id="pdf-fop" info="pdf" type="org.fugerit.java.doc.mod.fop.PdfFopTypeHandler"/>
18+
<docHandler id="html-fm" info="html" type="org.fugerit.java.doc.freemarker.html.FreeMarkerHtmlTypeHandlerUTF8" />
19+
<docHandler id="html-fragment-fm" info="fhtml" type="org.fugerit.java.doc.freemarker.html.FreeMarkerHtmlFragmentTypeHandlerUTF8" />
20+
</docHandlerConfig>
21+
22+
</freemarker-doc-process-config>

0 commit comments

Comments
 (0)