aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsTemplateCreator.java
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2016-12-12 07:50:25 +0100
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2016-12-12 07:50:25 +0100
commit65eb7054679d63a4f519bd31eb37805666e6fef8 (patch)
tree132ec9504a268e44e801e6bd1c26fcc49bd57e7d /pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsTemplateCreator.java
parent57ffbe830705003caa2af2e12f7e38c38d3a2ff8 (diff)
downloadpdf-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.java37
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());