diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2016-12-12 07:50:25 +0100 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2016-12-12 07:50:25 +0100 |
commit | 65eb7054679d63a4f519bd31eb37805666e6fef8 (patch) | |
tree | 132ec9504a268e44e801e6bd1c26fcc49bd57e7d /pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsTemplateCreator.java | |
parent | 57ffbe830705003caa2af2e12f7e38c38d3a2ff8 (diff) | |
download | pdf-as-4-65eb7054679d63a4f519bd31eb37805666e6fef8.tar.gz pdf-as-4-65eb7054679d63a4f519bd31eb37805666e6fef8.tar.bz2 pdf-as-4-65eb7054679d63a4f519bd31eb37805666e6fef8.zip |
added PDF/A-3b support, and PDF/A version detection
Diffstat (limited to 'pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsTemplateCreator.java')
-rw-r--r-- | pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsTemplateCreator.java | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsTemplateCreator.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsTemplateCreator.java index b8c15119..b07e6ed5 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsTemplateCreator.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsTemplateCreator.java @@ -23,11 +23,10 @@ ******************************************************************************/ package at.gv.egiz.pdfas.lib.impl.stamping.pdfbox2; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; +import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings; +import at.gv.egiz.pdfas.lib.impl.stamping.TableFactory; import org.apache.pdfbox.cos.COSName; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; @@ -143,7 +142,9 @@ public class PDFAsTemplateCreator extends PDFTemplateCreator { null, innerFormName, properties); this.pdfBuilder.createVisualSignature(template); this.pdfBuilder.createWidgetDictionary(pdSignatureField, holderFormResources); - + + + ByteArrayInputStream in = null; //COSDocument doc = pdfStructure.getVisualSignature(); @@ -152,7 +153,31 @@ public class PDFAsTemplateCreator extends PDFTemplateCreator { ByteArrayOutputStream baos = new ByteArrayOutputStream(); template.save(baos); baos.close(); - in = new ByteArrayInputStream(baos.toByteArray()); + + SignatureProfileSettings signatureProfileSettings = + this.pdfBuilder.signatureProfileSettings; + + boolean requirePDFA3 = signatureProfileSettings.isPDFA3(); + + if(requirePDFA3) { + + //FileOutputStream fos = new FileOutputStream("/tmp/signature.pdf"); + //fos.write(baos.toByteArray()); + //fos.close(); + + PDDocument cidSetRemoved = PDDocument.load(baos.toByteArray()); + try { + this.pdfBuilder.removeCidSet(cidSetRemoved); + baos.reset(); + baos = new ByteArrayOutputStream(); + cidSetRemoved.save(baos); + baos.close(); + } finally { + cidSetRemoved.close(); + } + } + + in = new ByteArrayInputStream(baos.toByteArray()); logger.debug("stream returning started, size= " + in.available()); |