diff --git a/library/src/main/java/org/mustangproject/FileAttachment.java b/library/src/main/java/org/mustangproject/FileAttachment.java index 99a60419..791db6d4 100644 --- a/library/src/main/java/org/mustangproject/FileAttachment.java +++ b/library/src/main/java/org/mustangproject/FileAttachment.java @@ -10,7 +10,7 @@ public class FileAttachment { protected String filename; protected String mimetype; protected String relation = "Unspecified"; - protected String description; + protected String description = "Additional file attachment"; protected byte[] data; @@ -21,19 +21,25 @@ public class FileAttachment { } + public FileAttachment(String filename, String mimetype, String relation, byte[] data, String description) { + this.filename = filename; + this.mimetype = mimetype; + this.relation = relation; + this.data = data; + this.description = description; + } + public FileAttachment(String filename, String mimetype, String relation, byte[] data) { this.filename = filename; this.mimetype = mimetype; this.relation = relation; this.data = data; - this.description = "Additional file attachment"; } public FileAttachment(String filename, String mimetype, byte[] data) { this.filename = filename; this.mimetype = mimetype; this.data = data; - this.description = "Additional file attachment"; } public String getDescription() { diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java index fce06f01..cdfe1d29 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDInvoiceImporter.java @@ -994,6 +994,12 @@ public class ZUGFeRDInvoiceImporter { NodeList attachmentNodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET); for (int i = 0; i < attachmentNodes.getLength(); i++) { FileAttachment fa = new FileAttachment(attachmentNodes.item(i).getAttributes().getNamedItem("filename").getNodeValue(), attachmentNodes.item(i).getAttributes().getNamedItem("mimeCode").getNodeValue(), "Data", Base64.getMimeDecoder().decode(XMLTools.trimOrNull(attachmentNodes.item(i)))); + NodeList nl = attachmentNodes.item(i).getParentNode().getChildNodes(); + for (int j = 0; j < nl.getLength(); j++) { + if (nl.item(j).getLocalName() != null && nl.item(j).getLocalName().equals("Name")) { + fa.setDescription(nl.item(j).getTextContent()); + } + } zpp.embedFileInXML(fa); // filename = "Aufmass.png" mimeCode = "image/png" //EmbeddedDocumentBinaryObject cbc:EmbeddedDocumentBinaryObject mimeCode="image/png" filename="Aufmass.png" diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java index 42fd653c..cba6aeca 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/XRTest.java @@ -102,7 +102,7 @@ public class XRTest extends TestCase { BigDecimal amount = new BigDecimal(amountStr); byte[] b = {12, 13}; - FileAttachment fe1 = new FileAttachment("one.pdf", "application/pdf", "Alternative", b); + FileAttachment fe1 = new FileAttachment("one.pdf", "application/pdf", "Alternative", b,"Beschreibung"); Invoice i = new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()) .setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").setEmail("sender@example.com").addTaxID("DE4711").addVATID("DE0815").setContact(new Contact("Hans Test", "+49123456789", "test@example.org")).addBankDetails(new BankDetails("DE12500105170648489890", "COBADEFXXX").setAccountName("kontoInhaber"))) .setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").setEmail("recipient@sample.org")) @@ -121,6 +121,7 @@ public class XRTest extends TestCase { zf2p.setProfile(Profiles.getByName("XRechnung")); zf2p.generateXML(i); String theXML = new String(zf2p.getXML(), StandardCharsets.UTF_8); + System.out.println(theXML); assertTrue(theXML.contains("