From 81328c939b465cff93ce0844e0cb834fafde58c8 Mon Sep 17 00:00:00 2001 From: langfr Date: Wed, 21 Aug 2024 00:01:22 +0100 Subject: [PATCH] Fix ClassCastException in CLI (Main.java). --- .../java/org/mustangproject/commandline/Main.java | 11 ++++++++--- .../ZUGFeRD/ZUGFeRDExporterFromPDFA.java | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Mustang-CLI/src/main/java/org/mustangproject/commandline/Main.java b/Mustang-CLI/src/main/java/org/mustangproject/commandline/Main.java index c7ac50af..1bf377c5 100755 --- a/Mustang-CLI/src/main/java/org/mustangproject/commandline/Main.java +++ b/Mustang-CLI/src/main/java/org/mustangproject/commandline/Main.java @@ -722,9 +722,6 @@ public class Main { ((ZUGFeRDExporterFromPDFA) ze).ignorePDFAErrors(); } } - for (FileAttachment attachment : attachments) { - ((ZUGFeRDExporterFromA3) ze).attachFile(attachment.getFilename(), attachment.getData(), attachment.getMimetype(), attachment.getRelation()); - } ze.load(pdfName); ze.setProducer("Mustang-cli") @@ -737,6 +734,14 @@ public class Main { ze.setXML(Files.readAllBytes(Paths.get(xmlName))); + for (FileAttachment attachment : attachments) { + if (((ZUGFeRDExporterFromPDFA) ze).getExporter() instanceof ZUGFeRDExporterFromA3 ) { + ((ZUGFeRDExporterFromA3) ((ZUGFeRDExporterFromPDFA) ze).getExporter()).attachFile(attachment.getFilename(), attachment.getData(), attachment.getMimetype(), attachment.getRelation()); + } else { + System.err.println("IZUGFeRDExporter ze is not of type 'ZUGFeRDExporterFromA3'"); + } + } + ze.export(outName); System.out.println("Written to " + outName); diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporterFromPDFA.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporterFromPDFA.java index 9a4f2c2f..d6d4fa55 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporterFromPDFA.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporterFromPDFA.java @@ -72,7 +72,7 @@ public class ZUGFeRDExporterFromPDFA implements IZUGFeRDExporter { } - protected IZUGFeRDExporter getExporter() { + public IZUGFeRDExporter getExporter() { if (theExporter==null) { throw new RuntimeException("In ZUGFeRDExporterFromPDFA, source must always be loaded before other operations are performed."); }