From 44256e68fc579cb804d56d1fb5525c6c29d8c38b Mon Sep 17 00:00:00 2001 From: Andreas Abraham Date: Mon, 2 Dec 2019 12:54:22 +0100 Subject: signature placeholder (pdf signature annotation) implemented --- pdf-over-gui/pom.xml | 5 ++ .../main/java/at/asit/pdfover/gui/Constants.java | 5 ++ .../pdfover/gui/workflow/states/OpenState.java | 64 ++++++++++++++------- .../src/main/resources/cfg/PDFASConfig.zip | Bin 971912 -> 971868 bytes 4 files changed, 54 insertions(+), 20 deletions(-) (limited to 'pdf-over-gui') diff --git a/pdf-over-gui/pom.xml b/pdf-over-gui/pom.xml index 94de3e50..a35bc9ac 100644 --- a/pdf-over-gui/pom.xml +++ b/pdf-over-gui/pom.xml @@ -61,6 +61,11 @@ jsoup 1.11.3 + + commons-configuration + commons-configuration + 1.10 + diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/Constants.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/Constants.java index f1ee6165..162fbd15 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/Constants.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/Constants.java @@ -44,6 +44,11 @@ public class Constants { // Has to be set before (implicitly) initializing Display Display.setAppName(APP_NAME); } + + /** + * + */ + public static final String SIGNATURE_FIELD_NAME_CONF = "signature_field_name"; /** Current display - used for Colors */ private static Display display = Display.getCurrent(); diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java index 9e9d0700..c3681dd8 100644 --- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java +++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/OpenState.java @@ -18,7 +18,9 @@ package at.asit.pdfover.gui.workflow.states; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.FileWriter; import java.io.IOException; +import java.io.InputStreamReader; import java.util.List; import java.util.Properties; @@ -46,6 +48,10 @@ import at.gv.egiz.pdfas.lib.impl.pdfbox2.placeholder.SignatureFieldsExtractor; import at.gv.egiz.pdfas.lib.impl.pdfbox2.placeholder.SignaturePlaceholderExtractor; //import at.gv.egiz.pdfas.lib.impl.pdfbox2.placeholder. +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.commons.configuration.PropertiesConfigurationLayout; + /** * Selects the data source for the signature process. @@ -64,7 +70,8 @@ public class OpenState extends State { **/ private static final Logger log = LoggerFactory .getLogger(OpenState.class); - + private static final String advancedConfig = Constants.CONFIG_DIRECTORY + File.separator + "/cfg/advancedconfig.properties"; //$NON-NLS-1$ + private DataSourceSelectComposite selectionComposite = null; private DataSourceSelectComposite getSelectionComposite() { @@ -140,25 +147,8 @@ public class OpenState extends State { System.out.println("ok pressed"); //$NON-NLS-1$ getStateMachine().getStatus().setSearchForPlaceholderSignature(true); - //TODO configure and skip placing - //TODO fix this - try { - String cfgPath = Constants.CONFIG_DIRECTORY + File.separator + "/cfg/advancedconfig.properties"; //$NON-NLS-1$ - FileInputStream in = new FileInputStream(cfgPath); - Properties props = new Properties(); - props.load(in); - in.close(); - - FileOutputStream out = new FileOutputStream(cfgPath); //$NON-NLS-1$ - props.setProperty("signature_field_name", fields.get(res)); //$NON-NLS-1$ //$NON-NLS-2$ - props.store(out, null); - out.close(); - - } catch (Exception e) { - System.err.println(e.getMessage()); - System.err.println(e.getStackTrace()); - } - + + addPlaceholderSelectionToConfig(fields.get(res)); this.setNextState(new BKUSelectionState(getStateMachine())); return; @@ -196,6 +186,40 @@ public class OpenState extends State { this.setNextState(new PositioningState(getStateMachine())); } + + /** + * The selected placeholder is added to the configuration file + * @param selection + */ + @SuppressWarnings("static-method") + private void addPlaceholderSelectionToConfig(String selection) { + try { + FileInputStream in = new FileInputStream(advancedConfig); +// Properties props = new Properties(); +// props.load(in); +// in.close(); +// +// +// +// FileOutputStream out = new FileOutputStream(advancedConfig); +// props.setProperty(Constants.SIGNATURE_FIELD_NAME_CONF, selection); //$NON-NLS-1$ +// +// props.store(out, null); +// out.close(); + + + PropertiesConfiguration config = new PropertiesConfiguration(); + PropertiesConfigurationLayout layout = new PropertiesConfigurationLayout(config); + layout.load(new InputStreamReader(new FileInputStream(advancedConfig))); + + config.setProperty(Constants.SIGNATURE_FIELD_NAME_CONF, selection); + layout.save(new FileWriter(advancedConfig, false)); + + } catch (Exception e) { + log.error(e.getMessage(), e.getStackTrace()); + } + + } /** * Open the input document selection dialog diff --git a/pdf-over-gui/src/main/resources/cfg/PDFASConfig.zip b/pdf-over-gui/src/main/resources/cfg/PDFASConfig.zip index dad6f8a9..4c25ca9d 100644 Binary files a/pdf-over-gui/src/main/resources/cfg/PDFASConfig.zip and b/pdf-over-gui/src/main/resources/cfg/PDFASConfig.zip differ -- cgit v1.2.3