From b34cefbc33a3afc26dece74ea8bc42c5054efd5b Mon Sep 17 00:00:00 2001 From: Jakob Heher Date: Thu, 17 Nov 2022 12:19:04 +0100 Subject: handle invisible profile signature previews better --- .../asit/pdfover/signer/pdfas/PdfAs4SignatureParameter.java | 2 +- .../asit/pdfover/signer/pdfas/PdfAs4SignaturePlaceholder.java | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'pdf-over-signer') diff --git a/pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignatureParameter.java b/pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignatureParameter.java index 0229acb6..ee8c2741 100644 --- a/pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignatureParameter.java +++ b/pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignatureParameter.java @@ -126,7 +126,7 @@ public class PdfAs4SignatureParameter { Image placeholder = pdfas.generateVisibleSignaturePreview(param, cert, 72 * 4); // WORKAROUND for #110, manually paint a black border - if (!this.signatureProfile.equals(Profile.BASE_LOGO)) + if ((placeholder != null) && !this.signatureProfile.equals(Profile.BASE_LOGO)) { Graphics2D ctx = (Graphics2D)placeholder.getGraphics(); ctx.setColor(Color.BLACK); diff --git a/pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignaturePlaceholder.java b/pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignaturePlaceholder.java index facdd47e..04bbcfdf 100644 --- a/pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignaturePlaceholder.java +++ b/pdf-over-signer/src/main/java/at/asit/pdfover/signer/pdfas/PdfAs4SignaturePlaceholder.java @@ -5,6 +5,7 @@ import java.util.Comparator; import java.util.TreeMap; import java.util.function.Consumer; +import at.asit.pdfover.commons.Profile; import at.asit.pdfover.commons.utils.ImageUtil; /** @@ -36,6 +37,7 @@ public final class PdfAs4SignaturePlaceholder implements Runnable { } private java.awt.image.BufferedImage awtImageData; + public boolean hasImage() { return ((this.awtImageData != null) && (this.swtImageData != null)); } /** AWT image data for the placeholder */ public java.awt.image.BufferedImage getAWTImage() { return this.awtImageData; } private org.eclipse.swt.graphics.ImageData swtImageData; @@ -58,8 +60,13 @@ public final class PdfAs4SignaturePlaceholder implements Runnable { @Override public void run() { - this.awtImageData = (java.awt.image.BufferedImage) this.param.getPlaceholder(); - this.swtImageData = ImageUtil.convertToSWT(this.awtImageData); + if (!Profile.INVISIBLE.name().equals(this.param.getPdfAsSignatureProfileId())) { + this.awtImageData = (java.awt.image.BufferedImage) this.param.getPlaceholder(); + this.swtImageData = ImageUtil.convertToSWT(this.awtImageData); + } else { + this.awtImageData = null; + this.swtImageData = null; + } ArrayList> _callbacks; synchronized (this) { _callbacks = this.callbacks; -- cgit v1.2.3