diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-03-13 08:52:46 +0100 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-04-01 16:51:50 +0200 |
commit | 8d9cc698494694a57743c7443bf5e77d4e6c882b (patch) | |
tree | 6b7cf655ffdc0a8e92252adbf25ce5ae4fd41f1f /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PDFAsVisualSignatureProperties.java | |
parent | 78c7b6b82267b766b573046d722a55638749a6cd (diff) | |
download | pdf-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.java | 70 |
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; + } + +} |