diff options
author | Jakob Heher <jakob.heher@iaik.tugraz.at> | 2022-11-17 12:19:04 +0100 |
---|---|---|
committer | Jakob Heher <jakob.heher@iaik.tugraz.at> | 2022-11-17 12:19:04 +0100 |
commit | b34cefbc33a3afc26dece74ea8bc42c5054efd5b (patch) | |
tree | 408ec9e7153219aa6d5880857f43e3d70bb2ffcf /pdf-over-signer | |
parent | f28f118f6824c0a9c7b4816dfdb95339d874141d (diff) | |
download | pdf-over-b34cefbc33a3afc26dece74ea8bc42c5054efd5b.tar.gz pdf-over-b34cefbc33a3afc26dece74ea8bc42c5054efd5b.tar.bz2 pdf-over-b34cefbc33a3afc26dece74ea8bc42c5054efd5b.zip |
handle invisible profile signature previews better
Diffstat (limited to 'pdf-over-signer')
2 files changed, 10 insertions, 3 deletions
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<Consumer<PdfAs4SignaturePlaceholder>> _callbacks; synchronized (this) { _callbacks = this.callbacks; |