diff --git a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.java b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.java index df83994a..86667e1f 100644 --- a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.java +++ b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.java @@ -75,6 +75,8 @@ public class ZUGFeRDExporter implements Closeable { private boolean disableAutoClose; + private boolean fileAttached=false; + public ZUGFeRDExporter() { init(); } @@ -274,7 +276,6 @@ public class ZUGFeRDExporter implements Closeable { * setZUGFeRDXMLData(byte[] zugferdData) */ public void PDFattachZugferdFile(IZUGFeRDExportableTransaction trans) throws IOException { - xmlProvider.generateXML(trans); String filename = getFilenameForVersion(ZFVersion); PDFAttachGenericFile(doc, filename, "Alternative", @@ -283,6 +284,9 @@ public class ZUGFeRDExporter implements Closeable { } public void export(String ZUGFeRDfilename) throws IOException { + if (!fileAttached) { + throw new IOException("File must be attached (usually with PDFattachZugferdFile) before perfoming this operation"); + } doc.save(ZUGFeRDfilename); if (!disableAutoClose) { close(); @@ -290,6 +294,9 @@ public class ZUGFeRDExporter implements Closeable { } public void export(OutputStream output) throws IOException { + if (!fileAttached) { + throw new IOException("File must be attached (usually with PDFattachZugferdFile) before perfoming this operation"); + } doc.save(output); if (!disableAutoClose) { close(); @@ -316,6 +323,8 @@ public class ZUGFeRDExporter implements Closeable { */ public void PDFAttachGenericFile(PDDocument doc, String filename, String relationship, String description, String subType, byte[] data) throws IOException { + fileAttached=true; + PDComplexFileSpecification fs = new PDComplexFileSpecification(); fs.setFile(filename); diff --git a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java index 2e1647f4..4960de8e 100644 --- a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java +++ b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java @@ -183,8 +183,7 @@ public class MustangReaderWriterCustomXMLTest extends TestCase { + "\n" + "\n" + "\n" + ""; zea1.setZUGFeRDXMLData(ownZUGFeRDXML.getBytes("UTF-8")); - zea1.PDFattachZugferdFile(null); - + ByteArrayOutputStream baos=new ByteArrayOutputStream(); zea1.disableAutoClose(true); zea1.export(TARGET_PDF); diff --git a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterEdgeTest.java b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterEdgeTest.java index e47d360b..c1c2d44b 100644 --- a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterEdgeTest.java +++ b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterEdgeTest.java @@ -412,7 +412,7 @@ public class MustangReaderWriterEdgeTest extends TestCase implements IZUGFeRDExp ze.setZUGFeRDVersion(1); ze.PDFattachZugferdFile(this); String theXML=new String(ze.getProvider().getXML()); - //assertTrue(theXML.contains("