This is an automated email from the git hooks/post-receive script. New commit to branch feature/erreur_au_chargement_des_PJ in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit a36e8ae83708b9bcf6aff15090e1e839da6bfb5f Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Jun 12 11:55:26 2018 +0200 en cas d'erteur au chargemenr d'une page d'un pièce joint, la remplacer par une page d'erreur sans bloquer l'ouverture du mail --- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 51 ++++++++++++++++++++-- .../i18n/faxtomail-ui-swing_fr_FR.properties | 1 + 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java index ecac3cb1..8779855a 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/util/FaxToMailUIUtil.java @@ -95,6 +95,7 @@ import java.awt.Desktop; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.Image; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; @@ -972,7 +973,16 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { for (int i = 0 ; i < pdDocument.getNumberOfPages() ; i++) { JImagePanel imagePanel = new JImagePanel(); imagePanel.setScaleImageToFitPanel(true); - imagePanel.setImage(renderer.renderImage(i)); + BufferedImage image; + try { + image = renderer.renderImage(i); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Error on load pdf (page " + i + ")", e); + } + image = generateErrorImage(e.getMessage()); + } + imagePanel.setImage(image); imagePanel.setAlignmentX(Component.LEFT_ALIGNMENT); box.add(imagePanel); box.add(Box.createVerticalStrut(3)); @@ -989,8 +999,17 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { ImageDecoder tifImageDecoder = ImageCodec.createImageDecoder(names[0], stream, null); for (int i = 0 ; i < tifImageDecoder.getNumPages() ; i++) { - RenderedImage renderedImage = tifImageDecoder.decodeAsRenderedImage(i); - Image awtImage = PlanarImage.wrapRenderedImage(renderedImage).getAsBufferedImage(); + Image awtImage; + try { + RenderedImage renderedImage = tifImageDecoder.decodeAsRenderedImage(i); + awtImage = PlanarImage.wrapRenderedImage(renderedImage).getAsBufferedImage(); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Error on load tif (page " + i + ")", e); + } + awtImage = generateErrorImage(e.getMessage()); + } + JImagePanel imagePanel = new JImagePanel(); int maxWidth = config.getMaxWidthImageInTextPane(); @@ -1047,6 +1066,32 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { } } + protected static BufferedImage generateErrorImage(String message) { + BufferedImage image = new BufferedImage(600, 800, BufferedImage.TYPE_INT_ARGB); + Graphics2D graphics = image.createGraphics(); + + graphics.setBackground(Color.WHITE); + graphics.setColor(Color.WHITE); + graphics.fillRect(0, 0, 600, 800); + + String fontName = graphics.getFont().toString(); + Font font = new Font(fontName, Font.BOLD, 20); + + graphics.setFont(font); + graphics.setColor(Color.RED); + graphics.drawString(t("faxtomail.image.error"), 50, 200); + + if (message != null) { + font = new Font(fontName, Font.PLAIN, 14); + graphics.setFont(font); + graphics.drawString(message, 60, 230); + } + + graphics.dispose(); + + return image; + } + public static String getQuotedReplyContent(String signing, String receptionDate, String sender, String originalEmail) { String quotedReply = t("faxtomail.reply.message", signing, diff --git a/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties b/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties index 178fff6b..32fc6c66 100644 --- a/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties +++ b/faxtomail-ui-swing/src/main/resources/i18n/faxtomail-ui-swing_fr_FR.properties @@ -250,6 +250,7 @@ faxtomail.forward.message=<html><body><p></p>%s<p>--- Message transféré ---<br faxtomail.historyList.action.tip=Historique faxtomail.historyList.text=Historique (%s) faxtomail.historyList.title=Historique +faxtomail.image.error=Erreur au chargement du document faxtomail.main.action.about=À propos faxtomail.main.action.about.tip=À propos faxtomail.main.action.demandeList=Gestion des fax -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.