From 53d5b439a422c72e6f94a2fb1012c85732e33bfe Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Tue, 6 May 2014 12:20:08 +0200 Subject: PDF-AS 4 RC2 --- .../lib/impl/signing/pdfbox/PADESPDFBOXSigner.java | 35 ++++++++++++---------- 1 file changed, 19 insertions(+), 16 deletions(-) (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java') diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java index 1175e2dc..854559d2 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox/PADESPDFBOXSigner.java @@ -23,8 +23,6 @@ ******************************************************************************/ package at.gv.egiz.pdfas.lib.impl.signing.pdfbox; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -42,8 +40,6 @@ import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocumentCatalog; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageNode; -import org.apache.pdfbox.pdmodel.documentinterchange.logicalstructure.PDStructureElement; -import org.apache.pdfbox.pdmodel.documentinterchange.logicalstructure.PDStructureTreeRoot; import org.apache.pdfbox.pdmodel.graphics.color.PDOutputIntent; import org.apache.pdfbox.pdmodel.graphics.xobject.PDJpeg; import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; @@ -71,7 +67,6 @@ import at.gv.egiz.pdfas.lib.impl.stamping.TableFactory; import at.gv.egiz.pdfas.lib.impl.stamping.ValueResolver; import at.gv.egiz.pdfas.lib.impl.stamping.pdfbox.PDFAsVisualSignatureProperties; import at.gv.egiz.pdfas.lib.impl.stamping.pdfbox.PdfBoxVisualObject; -import at.gv.egiz.pdfas.lib.impl.stamping.pdfbox.tagging.PDFBoxTaggingUtils; import at.gv.egiz.pdfas.lib.impl.status.PDFObject; import at.gv.egiz.pdfas.lib.impl.status.RequestedSignature; import at.knowcenter.wag.egov.egiz.pdf.PositioningInstruction; @@ -222,10 +217,10 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { properties.buildSignature(); - ByteArrayOutputStream sigbos = new ByteArrayOutputStream(); + /*ByteArrayOutputStream sigbos = new ByteArrayOutputStream(); sigbos.write(StreamUtils.inputStreamToByteArray(properties .getVisibleSignature())); - sigbos.close(); + sigbos.close();*/ if (signaturePlaceholderData != null) { // Placeholder found! @@ -305,8 +300,8 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { options.setPreferedSignatureSize(0x1000); options.setPage(positioningInstruction.getPage()); - options.setVisualSignature(new ByteArrayInputStream(sigbos - .toByteArray())); + options.setVisualSignature(properties + .getVisibleSignature()); } doc.addSignature(signature, signer, options); @@ -314,18 +309,23 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { // pdfbox patched (FIS -> IS) doc.saveIncremental(fis, fos); fis.close(); + fos.flush(); fos.close(); - + fos = null; + fis = new FileInputStream(new File(fisTmpFile)); // write to resulting output stream - ByteArrayOutputStream bos = new ByteArrayOutputStream(); - bos.write(StreamUtils.inputStreamToByteArray(fis)); - fis.close(); - bos.close(); - - pdfObject.setSignedDocument(bos.toByteArray()); + //ByteArrayOutputStream bos = new ByteArrayOutputStream(); + //bos.write(); + //bos.close(); + + pdfObject.setSignedDocument(StreamUtils.inputStreamToByteArray(fis)); + fis.close(); + fis = null; + System.gc(); + helper.deleteFile(fisTmpFile); } catch (IOException e) { @@ -337,6 +337,9 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { } catch (COSVisitorException e) { logger.error(MessageResolver.resolveMessage("error.pdf.sig.01"), e); throw new PdfAsException("error.pdf.sig.01", e); + } finally { + logger.info("Signature done!"); + } } } -- cgit v1.2.3