aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/demo/SignatureCreationWithDynamicProfilesDemo.java
diff options
context:
space:
mode:
authortknall <tknall@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2010-12-03 16:13:21 +0000
committertknall <tknall@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>2010-12-03 16:13:21 +0000
commit69bb808ea49e2e1755d2c2d7141378e25174b7c2 (patch)
tree8ad179f4c19570690b035b38f9e14d42a80ecb55 /src/main/java/demo/SignatureCreationWithDynamicProfilesDemo.java
parentdcb977941413603d4c6029ff5c22741d8ebbcea0 (diff)
downloadpdf-as-3-69bb808ea49e2e1755d2c2d7141378e25174b7c2.tar.gz
pdf-as-3-69bb808ea49e2e1755d2c2d7141378e25174b7c2.tar.bz2
pdf-as-3-69bb808ea49e2e1755d2c2d7141378e25174b7c2.zip
Demos updated in order to show new features.
git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@669 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c
Diffstat (limited to 'src/main/java/demo/SignatureCreationWithDynamicProfilesDemo.java')
-rw-r--r--src/main/java/demo/SignatureCreationWithDynamicProfilesDemo.java117
1 files changed, 117 insertions, 0 deletions
diff --git a/src/main/java/demo/SignatureCreationWithDynamicProfilesDemo.java b/src/main/java/demo/SignatureCreationWithDynamicProfilesDemo.java
new file mode 100644
index 0000000..41a79ff
--- /dev/null
+++ b/src/main/java/demo/SignatureCreationWithDynamicProfilesDemo.java
@@ -0,0 +1,117 @@
+package demo;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+
+import at.gv.egiz.pdfas.PdfAsFactory;
+import at.gv.egiz.pdfas.api.PdfAs;
+import at.gv.egiz.pdfas.api.analyze.NonTextObjectInfo;
+import at.gv.egiz.pdfas.api.commons.Constants;
+import at.gv.egiz.pdfas.api.commons.DynamicSignatureLifetimeEnum;
+import at.gv.egiz.pdfas.api.commons.DynamicSignatureProfile;
+import at.gv.egiz.pdfas.api.exceptions.PdfAsException;
+import at.gv.egiz.pdfas.api.io.DataSource;
+import at.gv.egiz.pdfas.api.sign.SignParameters;
+import at.gv.egiz.pdfas.api.sign.SignResult;
+import at.gv.egiz.pdfas.api.sign.pos.SignaturePositioning;
+import at.gv.egiz.pdfas.io.FileBasedDataSink;
+import at.gv.egiz.pdfas.io.FileBasedDataSource;
+
+public class SignatureCreationWithDynamicProfilesDemo {
+
+ /**
+ * Disable instantiation.
+ */
+ private SignatureCreationWithDynamicProfilesDemo() {
+ }
+
+ /**
+ * Starts a demo that signs a document.
+ *
+ * @param args
+ * The parameter(s).
+ */
+ public static void main(String[] args) {
+
+ if (args == null || args.length == 0) {
+ System.err.println("Please provide path of file to be signed.");
+ System.exit(1);
+ }
+
+ File configdir = new File("./work");
+ File unsignedFile = new File(args[0]);
+ File signedFile = new File(args[0] + "_signed.pdf");
+
+ try {
+
+ // instantiate api
+ PdfAs pdfasAPI = PdfAsFactory.createPdfAs(configdir);
+
+ // set source
+ DataSource dataSource = new FileBasedDataSource(unsignedFile, "application/pdf");
+
+ // set output
+ FileBasedDataSink dataSink = new FileBasedDataSink(signedFile);
+
+ // configure signature
+ SignParameters signParameters = new SignParameters();
+ signParameters.setDocument(dataSource);
+ signParameters.setOutput(dataSink);
+ signParameters.setSignatureDevice(Constants.SIGNATURE_DEVICE_MOA);
+ signParameters.setSignaturePositioning(new SignaturePositioning("x:auto;y:auto;w:auto;p:auto;f:80"));
+ // standard signature
+ signParameters.setSignatureType(Constants.SIGNATURE_TYPE_TEXTUAL);
+
+ // set signature profile (note: this setting is being overwritten if the optional settings (below) are used
+ signParameters.setSignatureProfileId("SIGNATURBLOCK_DE");
+
+ // OPTIONAL[start]: adjust fixed signature profile dynamically according to your needs
+
+ // create dynamic signature profile, take values from profile SIGNATURBLOCK_DE
+ DynamicSignatureProfile dsp = pdfasAPI.createDynamicSignatureProfile(
+ "SIGNATURBLOCK_DE",
+ DynamicSignatureLifetimeEnum.AUTO // auto lifetime for one sign process
+ );
+
+ // simple access for everyone
+ // can also be done by using signParameters.setProfileOverrideValue("SIG_META", "New note value.");
+ dsp.setFieldValue("SIG_META", "New note value.");
+
+ // full control - USE THIS ONLY IF YOU REALLY KNOW WHAT YOU ARE DOING
+ // inconsiderate use may lead to non verifiable signatures
+ dsp.setPropertyRaw("table.main.Style.halign", "right");
+
+ // mandatory: register the profile
+ dsp.apply();
+
+ // set dynamic sign profile
+ signParameters.setSignatureProfileId(dsp.getName());
+
+ // OPTIONAL[end]
+
+ // sign
+ System.out.println("Signing...");
+ SignResult signResult = pdfasAPI.sign(signParameters);
+ System.out.println("Successfully signed.");
+
+ // check if non textual elements have been detected
+ if (signResult.hasNonTextualObjects()) {
+ System.out.println("\nWARNING: " + signResult.getNonTextualObjects().size() + " non textual object(s) detected.");
+ Iterator noit = signResult.getNonTextualObjects().iterator();
+ while (noit.hasNext()) {
+ NonTextObjectInfo info = (NonTextObjectInfo) noit.next();
+ System.out.println(" -> " + info.toString());
+ }
+ System.out.println();
+ }
+
+ } catch (PdfAsException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+}