branch develop updated (2ccf5e3 -> 77f666a)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git from 2ccf5e3 fixes #6346 Erreur à l'archivage suppression du fichier EDI en cours de création quand il y a une erreur et qu'il n'est pas complet new 77f666a fixes #6753 Les emails trop larges sont tronqués The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 77f666a816343575e3197c4de8796809986f2f8f Author: Kevin Morin <morin@codelutin.com> Date: Mon Mar 2 15:55:44 2015 +0100 fixes #6753 Les emails trop larges sont tronqués Summary of changes: .../services/service/EmailServiceImpl.java | 75 ++++++++++++++++++++-- .../services/service/EmailServiceTest.java | 29 ++++++--- faxtomail-ui-swing/pom.xml | 6 ++ .../src/license/THIRD-PARTY.properties | 9 ++- pom.xml | 8 ++- 5 files changed, 111 insertions(+), 16 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 77f666a816343575e3197c4de8796809986f2f8f Author: Kevin Morin <morin@codelutin.com> Date: Mon Mar 2 15:55:44 2015 +0100 fixes #6753 Les emails trop larges sont tronqués --- .../services/service/EmailServiceImpl.java | 75 ++++++++++++++++++++-- .../services/service/EmailServiceTest.java | 29 ++++++--- faxtomail-ui-swing/pom.xml | 6 ++ .../src/license/THIRD-PARTY.properties | 9 ++- pom.xml | 8 ++- 5 files changed, 111 insertions(+), 16 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index c782dd0..51e9a8f 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -48,10 +48,13 @@ import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; +import com.itextpdf.text.Image; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; +import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.PdfWriter; import gui.ava.html.Html2Image; +import gui.ava.html.renderer.ImageRenderer; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.Predicate; import org.apache.commons.io.FileUtils; @@ -85,6 +88,8 @@ import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; import org.nuiton.util.pagination.PaginationParameter; import org.nuiton.util.pagination.PaginationResult; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; import org.xhtmlrenderer.pdf.ITextRenderer; import javax.activation.DataHandler; @@ -2120,10 +2125,70 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe } } - Html2Image image = Html2Image.fromHtml(content); - //ImageRenderer imageRenderer = image.getImageRenderer(); - //imageRenderer.saveImage(os, true); - org.w3c.dom.Document doc = image.getParser().getDocument(); + Html2Image html2Image = Html2Image.fromHtml(content); + ImageRenderer imageRenderer = html2Image.getImageRenderer().setWidth((int) PageSize.A4.getWidth()); + org.w3c.dom.Document doc = html2Image.getParser().getDocument(); + + ByteArrayOutputStream ooo = new ByteArrayOutputStream(); + imageRenderer.saveImage(ooo, true); + Image image = Image.getInstance(ooo.toByteArray()); + + float width = image.getWidth(); + float height = image.getHeight(); + + // get the format of the page + Rectangle format = PageSize.A4; + if (width > PageSize.A4.getWidth() && width <= PageSize.A4.getHeight()) { + if (height <= PageSize.A4.getWidth()) { + format = PageSize.A4.rotate(); + + } else { + format = PageSize.A3; + } + } + if (width > PageSize.A3.getWidth() && width <= PageSize.A3.getHeight()) { + if (height <= PageSize.A3.getWidth()) { + format = PageSize.A3.rotate(); + + } else { + format = PageSize.A2; + } + } + if (width > PageSize.A2.getWidth() && width <= PageSize.A2.getHeight()) { + if (height <= PageSize.A2.getWidth()) { + format = PageSize.A2.rotate(); + + } else { + format = PageSize.A1; + } + } + if (width > PageSize.A1.getWidth() && width <= PageSize.A1.getHeight()) { + if (height <= PageSize.A1.getWidth()) { + format = PageSize.A1.rotate(); + + } else { + format = PageSize.A0; + } + } + if (width > PageSize.A0.getWidth()) { + format = PageSize.A0.rotate(); + } + + Node style = doc.createElement("style"); + style.setTextContent("@page { size: " + format.getWidth() + "px " + format.getHeight() + "px; }"); + NodeList heads = doc.getElementsByTagName("head"); + Node head; + if (heads.getLength() > 0) { + head = heads.item(0); + + } else { + head = doc.createElement("head"); + Node html = doc.getDocumentElement(); + html.appendChild(head); + } + head.appendChild(style); + +// FileUtils.write(new File("/tmp/test.html"), doc.toString()); // convert to pdf ITextRenderer renderer = new ITextRenderer(); @@ -2142,7 +2207,7 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe result.setAddedByUser(false); } catch (OutOfMemoryError | DocumentException er) { - // certains mails (spam) très compliqué ne peuvent pas être convertit en images + // certains mails (spam) très compliqués ne peuvent pas être convertit en images if (log.isWarnEnabled()) { log.warn("Can't convert html content to pdf", er); } diff --git a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java index c1647c3..83b1732 100644 --- a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java +++ b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java @@ -24,7 +24,6 @@ package com.franciaflex.faxtomail.services.service; * #L% */ -import com.franciaflex.faxtomail.persistence.entities.Attachment; import com.franciaflex.faxtomail.persistence.entities.AttachmentFile; import com.franciaflex.faxtomail.persistence.entities.DemandStatus; import com.franciaflex.faxtomail.persistence.entities.Email; @@ -35,9 +34,6 @@ import com.franciaflex.faxtomail.persistence.entities.Range; import com.franciaflex.faxtomail.persistence.entities.SearchFilter; import com.google.common.collect.Iterables; import com.google.common.collect.Sets; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.commons.mail.util.MimeMessageUtils; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -45,15 +41,10 @@ import org.nuiton.topia.persistence.TopiaEntities; import org.nuiton.util.pagination.PaginationParameter; import org.nuiton.util.pagination.PaginationResult; -import javax.mail.MessagingException; -import javax.mail.internet.MimeMessage; import java.io.File; -import java.io.FileReader; import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; import java.util.Collections; -import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -222,4 +213,24 @@ public class EmailServiceTest extends AbstractFaxToMailServiceTest { Assert.assertEquals(600, entry.getValue()[1].longValue()); // NPE : Assert.assertEquals(600, entry.getValue()[2].longValue()); } + +// @Test +// public void testConvertHTMLToPdf() { +// +// try { +// File email = new File("src/test/resources/email.txt"); +// String emailContent = FileUtils.readFileToString(email); +// MimeMessage message = MimeMessageUtils.createMimeMessage(null, emailContent); +// +// ArrayList<Attachment> attachments = new ArrayList<>(); +// String htmlContent = service.decomposeMultipartEmail(attachments, message); +// +// Attachment attachment = service.convertHTMLToPdf(attachments, htmlContent, "test"); +// Files.copy(attachment.getOriginalFile().getFile(), new File("/tmp/test.pdf")); +// +// } catch (Exception e) { +// e.printStackTrace(); +// } +// +// } } diff --git a/faxtomail-ui-swing/pom.xml b/faxtomail-ui-swing/pom.xml index 061158a..ba1bdcc 100644 --- a/faxtomail-ui-swing/pom.xml +++ b/faxtomail-ui-swing/pom.xml @@ -273,6 +273,12 @@ <scope>runtime</scope> </dependency> + <dependency> + <groupId>com.twelvemonkeys.imageio</groupId> + <artifactId>imageio-jpeg</artifactId> + <scope>runtime</scope> + </dependency> + </dependencies> <build> diff --git a/faxtomail-ui-swing/src/license/THIRD-PARTY.properties b/faxtomail-ui-swing/src/license/THIRD-PARTY.properties index be2c45c..380221f 100644 --- a/faxtomail-ui-swing/src/license/THIRD-PARTY.properties +++ b/faxtomail-ui-swing/src/license/THIRD-PARTY.properties @@ -36,12 +36,19 @@ # - Public Domain # - The Apache Software License, Version 2.0 # - The H2 License, Version 1.0 +# - The MIT License # - UnboundID LDAP SDK Free Use License #------------------------------------------------------------------------------- # Please fill the missing licenses for dependencies : # # -#Wed Jan 21 10:12:40 CET 2015 +#Sun Mar 01 12:20:52 CET 2015 +com.twelvemonkeys.common--common-image--3.0.2=BSD License +com.twelvemonkeys.common--common-io--3.0.2=BSD License +com.twelvemonkeys.common--common-lang--3.0.2=BSD License +com.twelvemonkeys.imageio--imageio-core--3.0.2=BSD License +com.twelvemonkeys.imageio--imageio-jpeg--3.0.2=BSD License +com.twelvemonkeys.imageio--imageio-metadata--3.0.2=BSD License commons-codec--commons-codec--1.2=The Apache Software License, Version 2.0 commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0 dom4j--dom4j--1.6.1=BSD License diff --git a/pom.xml b/pom.xml index dd250e2..7e0a295 100644 --- a/pom.xml +++ b/pom.xml @@ -327,7 +327,7 @@ <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> - <version>5.5.2</version> + <version>5.5.5</version> </dependency> <dependency> @@ -722,6 +722,12 @@ </dependency> <dependency> + <groupId>com.twelvemonkeys.imageio</groupId> + <artifactId>imageio-jpeg</artifactId> + <version>3.0.2</version> + </dependency> + + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junitVersion}</version> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm