aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureProperties.java
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-03-13 08:52:46 +0100
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-04-01 16:51:50 +0200
commit8d9cc698494694a57743c7443bf5e77d4e6c882b (patch)
tree6b7cf655ffdc0a8e92252adbf25ce5ae4fd41f1f /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureProperties.java
parent78c7b6b82267b766b573046d722a55638749a6cd (diff)
downloadpdf-as-4-8d9cc698494694a57743c7443bf5e77d4e6c882b.tar.gz
pdf-as-4-8d9cc698494694a57743c7443bf5e77d4e6c882b.tar.bz2
pdf-as-4-8d9cc698494694a57743c7443bf5e77d4e6c882b.zip
WIP: pdfbox table to Sign AP
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;
+ }
+
+}