From 1b677f9837595d29a82c8be03ed4a4a1e3f6d482 Mon Sep 17 00:00:00 2001 From: tkellner Date: Wed, 10 Apr 2013 19:03:57 +0000 Subject: + implemented fallback for placeholder creation git-svn-id: https://joinup.ec.europa.eu/svn/pdf-over/trunk@108 174cde9d-5d70-4d2a-aa98-46368bc2aaf7 --- .../signer/pdfas/PdfAsSignatureParameter.java | 58 ++++++++++++--------- .../src/main/resources/img/fallbackPlaceholder.png | Bin 0 -> 8189 bytes 2 files changed, 34 insertions(+), 24 deletions(-) create mode 100644 pdf-over-signer/pdf-over-sigpdfas/src/main/resources/img/fallbackPlaceholder.png (limited to 'pdf-over-signer') diff --git a/pdf-over-signer/pdf-over-sigpdfas/src/main/java/at/asit/pdfover/signer/pdfas/PdfAsSignatureParameter.java b/pdf-over-signer/pdf-over-sigpdfas/src/main/java/at/asit/pdfover/signer/pdfas/PdfAsSignatureParameter.java index 8668a3f3..3879c434 100644 --- a/pdf-over-signer/pdf-over-sigpdfas/src/main/java/at/asit/pdfover/signer/pdfas/PdfAsSignatureParameter.java +++ b/pdf-over-signer/pdf-over-sigpdfas/src/main/java/at/asit/pdfover/signer/pdfas/PdfAsSignatureParameter.java @@ -32,7 +32,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import at.asit.pdfover.signator.SignatureDimension; -import at.asit.pdfover.signator.SignatureException; import at.asit.pdfover.signator.SignatureParameter; import at.asit.pdfover.signator.SignaturePosition; import at.gv.egiz.pdfas.api.io.DataSource; @@ -113,53 +112,62 @@ public class PdfAsSignatureParameter extends SignatureParameter { * @see at.asit.pdfover.signator.SignatureParameter#getPlaceholder() */ @Override - public Image getPlaceholder() throws SignatureException { + public Image getPlaceholder() { - try - { + try { PDFASHelper.getPdfAs(); - + SignatureObject sign_obj = at.knowcenter.wag.egov.egiz.PdfAS .createSignatureObjectFromType(PDFASSigner.PROFILE_ID); - + sign_obj.fillValues(' ', true, false); sign_obj.setKZ(BinarySignator_1_1_0.MY_ID); - + float width = getPlaceholderDimension().getWidth(); float height = getPlaceholderDimension().getHeight(); - + Table table = sign_obj.getAbstractTable(); - + table.getStyle().getBgColor(); - + log.info(table.toString()); - - float[] heights = this.getTableHeights(table, table.getStyle(), height); - + + float[] heights = this.getTableHeights(table, table.getStyle(), + height); + log.info("Width: " + width + " Height: " + height); BufferedImage image = new BufferedImage((int) width, (int) height, BufferedImage.TYPE_INT_RGB); Graphics graphic = image.getGraphics(); - + graphic.setColor(table.getStyle().getBgColor()); graphic.fillRect(0, 0, (int) width, (int) height); - + graphic.setColor(Color.black); graphic.drawRect(0, 0, (int) width, (int) height); - + this.drawTable(0, 0, (int) width, (int) height, table, table.getStyle(), graphic, heights); - - save(image, "jpg"); - + + //save(image, "png"); + return image; - } - catch (Exception ex) { - log.error("Failed to create Placeholder!", ex); - throw new SignatureException(ex.getMessage()); + } catch (Exception ex) { + try { + return ImageIO.read(PdfAsSignatureParameter.class + .getResourceAsStream("/img/fallbackPlaceholder.png")); + } catch (IOException e) { + return new BufferedImage(getPlaceholderDimension().getWidth(), getPlaceholderDimension().getHeight(), BufferedImage.TYPE_INT_RGB); + } } } + /** + * used for debugging .. + * @param image + * @param ext + */ + @SuppressWarnings("unused") private static void save(BufferedImage image, String ext) { String fileName = "savingAnImage"; File file = new File(fileName + "." + ext); @@ -186,7 +194,9 @@ public class PdfAsSignatureParameter extends SignatureParameter { /** * extracts the value font - * @param style the table style + * + * @param style + * the table style * @return the value font */ @SuppressWarnings("unused") diff --git a/pdf-over-signer/pdf-over-sigpdfas/src/main/resources/img/fallbackPlaceholder.png b/pdf-over-signer/pdf-over-sigpdfas/src/main/resources/img/fallbackPlaceholder.png new file mode 100644 index 00000000..809e08f5 Binary files /dev/null and b/pdf-over-signer/pdf-over-sigpdfas/src/main/resources/img/fallbackPlaceholder.png differ -- cgit v1.2.3