aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureProperties.java
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureProperties.java')
-rw-r--r--pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureProperties.java70
1 files changed, 70 insertions, 0 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureProperties.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureProperties.java
new file mode 100644
index 00000000..a3d02db2
--- /dev/null
+++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureProperties.java
@@ -0,0 +1,70 @@
+package at.gv.egiz.pdfas.lib.impl.stamping.pdfbox;
+
+import iaik.x509.X509Certificate;
+
+import java.io.ByteArrayInputStream;
+import java.io.FileInputStream;
+import java.io.IOException;
+
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDFTemplateBuilder;
+import org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDFTemplateCreator;
+import org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDVisibleSigProperties;
+import org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDVisibleSignDesigner;
+
+import at.gv.egiz.pdfas.common.settings.ISettings;
+import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings;
+import at.gv.egiz.pdfas.lib.impl.stamping.TableFactory;
+import at.gv.egiz.pdfas.lib.impl.status.PDFObject;
+import at.gv.egiz.pdfas.lib.test.mains.CertificateHolderRequest;
+import at.knowcenter.wag.egov.egiz.table.Table;
+
+public class PDFAsVisualSignatureProperties extends PDVisibleSigProperties {
+
+ private ISettings settings;
+
+ private Table main;
+
+ public PDFAsVisualSignatureProperties(ISettings settings, PDFObject object) {
+ this.settings = settings;
+ try {
+ SignatureProfileSettings profileSettings = TableFactory
+ .createProfile("SIGNATURBLOCK_DE", settings);
+
+ X509Certificate cert = new X509Certificate(new FileInputStream(
+ "/home/afitzek/qualified.cer"));
+
+ CertificateHolderRequest request = new CertificateHolderRequest(
+ cert);
+
+ main = TableFactory.createSigTable(profileSettings, "main",
+ settings, request);
+
+ main.setWidth(400);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ try {
+ PDDocument origDoc = PDDocument.load(new ByteArrayInputStream(
+ object.getStampedDocument()));
+ PDVisibleSignDesigner designer = new PDVisibleSignDesigner(origDoc,
+ new FileInputStream("/home/afitzek/.pdfas/images/signatur-logo_de.png"), 1);
+
+ this.setPdVisibleSignature(designer);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void buildSignature() throws IOException {
+ PDFTemplateBuilder builder = new PDFAsVisualSignatureBuilder(this);
+ PDFTemplateCreator creator = new PDFTemplateCreator(builder);
+ setVisibleSignature(creator.buildPDF(getPdVisibleSignature()));
+ }
+
+ public Table getMainTable() {
+ return main;
+ }
+
+}