From 5d61b255005ca17d5b8fe53bc99c2180c4c04cb9 Mon Sep 17 00:00:00 2001 From: jstaerk Date: Thu, 13 Apr 2023 21:19:31 +0200 Subject: [PATCH] also convert ubl --- .../ZUGFeRD/ZUGFeRDVisualizer.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDVisualizer.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDVisualizer.java index 6fd08a1e..f787c706 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDVisualizer.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDVisualizer.java @@ -52,6 +52,7 @@ public class ZUGFeRDVisualizer { // } private TransformerFactory mFactory = null; private Templates mXsltXRTemplate = null; + private Templates mXsltUBLTemplate = null; private Templates mXsltHTMLTemplate = null; private Templates mXsltZF1HTMLTemplate = null; @@ -97,12 +98,24 @@ public class ZUGFeRDVisualizer { ByteArrayOutputStream baos = new ByteArrayOutputStream(); String zf1Signature = "rsm:CrossIndustryDocument"; + String zf2Signature = "rsm:CrossIndustryInvoice"; + String ublSignature = "ubl:Invoice"; + boolean doPostProcessing=false; if (fileContent.contains(zf1Signature)) { applyZF1XSLT(fis, baos); - } else { + } else if (fileContent.contains(zf2Signature)) { + //zf2 or fx applyZF2XSLT(fis, iaos); + doPostProcessing=true; + } else if (fileContent.contains(ublSignature)) { + //zf2 or fx + applyUBL2XSLT(fis, iaos); + doPostProcessing=true; + + } + if (doPostProcessing) { // take the copy of the stream and re-write it to an InputStream PipedInputStream in = new PipedInputStream(); PipedOutputStream out; @@ -136,7 +149,8 @@ public class ZUGFeRDVisualizer { applyXSLTToHTML(in, baos); } catch (IOException e1) { LOG.log(Level.SEVERE, null, e1); - } + } + } return baos.toString("UTF-8"); @@ -149,6 +163,17 @@ public class ZUGFeRDVisualizer { transformer.transform(new StreamSource(xmlFile), new StreamResult(HTMLOutstream)); } + public void applyUBL2XSLT(final InputStream xmlFile, final OutputStream HTMLOutstream) + throws TransformerException { + if (mXsltUBLTemplate==null) { + mXsltUBLTemplate = mFactory.newTemplates( + new StreamSource(CLASS_LOADER.getResourceAsStream(RESOURCE_PATH + "stylesheets/ubl-invoice-xr.xsl"))); + } + Transformer transformer = mXsltUBLTemplate.newTransformer(); + + transformer.transform(new StreamSource(xmlFile), new StreamResult(HTMLOutstream)); + } + public void applyZF1XSLT(final InputStream xmlFile, final OutputStream HTMLOutstream) throws TransformerException { Transformer transformer = mXsltZF1HTMLTemplate.newTransformer();