This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 1c28b0965707145c7b1bd3dd36453f6029c12d2e Author: Jean Couteau <jean.couteau@gmail.com> Date: Fri Feb 2 09:51:58 2018 +0100 fixes #9670 : Pouvoir régler le zoom des impressions --- .../faxtomail/FaxToMailConfiguration.java | 4 ++++ .../faxtomail/FaxToMailConfigurationOption.java | 7 ++++++ .../i18n/faxtomail-persistence_fr_FR.properties | 1 + .../swing/actions/PrintOnDefaultPrinterAction.java | 6 ++--- .../content/pdfeditor/PDFEditorUIHandler.java | 2 +- .../faxtomail/ui/swing/util/FaxToMailUIUtil.java | 26 +++++++++++++++++----- 6 files changed, 37 insertions(+), 9 deletions(-) diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java index 5bfc5aa8..5bc0c19f 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfiguration.java @@ -454,4 +454,8 @@ public class FaxToMailConfiguration extends ApplicationConfiguration { public float getDefaultZoomStepSize() { return applicationConfig.getOptionAsFloat(FaxToMailConfigurationOption.DEFAULT_ZOOM_STEP_SIZE.getKey()); } + + public int getDefaultPrintMargin() { + return applicationConfig.getOptionAsInt(FaxToMailConfigurationOption.DEFAULT_PRINT_MARGIN.getKey()); + } } diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java index 19de5dbf..2a86df0e 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/FaxToMailConfigurationOption.java @@ -340,6 +340,13 @@ defaults.put("Table.alternateRowColor", new Color(217, 217, 217)); n("faxtomail.config.option.ui.defaultZoomStepSize.description"), "0.5f", Float.class + ), + + DEFAULT_PRINT_MARGIN( + "faxtomail.ui.defaultPrintMargin", + n("faxtomail.config.option.ui.defaultPrintMargin.description"), + "15", + Integer.class ); /** Configuration key. */ diff --git a/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties b/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties index e019996f..2f4ddc23 100644 --- a/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties +++ b/faxtomail-persistence/src/main/resources/i18n/faxtomail-persistence_fr_FR.properties @@ -18,6 +18,7 @@ faxtomail.config.option.ui.color.blockingLayer.description= faxtomail.config.option.ui.color.selectedRow.description= faxtomail.config.option.ui.config.file.description= faxtomail.config.option.ui.dateFormat.description= +faxtomail.config.option.ui.defaultPrintMargin.description=Marges par défaut pour l'impression faxtomail.config.option.ui.defaultZoomStepSize.description= faxtomail.config.option.ui.defaultZoomValue.description= faxtomail.config.option.ui.refreshListInterval.description= diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/PrintOnDefaultPrinterAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/PrintOnDefaultPrinterAction.java index 94b4fd56..1b54343d 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/PrintOnDefaultPrinterAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/PrintOnDefaultPrinterAction.java @@ -116,7 +116,7 @@ public class PrintOnDefaultPrinterAction extends AbstractFaxToMailAction { Email email = demandeUIModel.toEntity(); final AttachmentFile demandDetailAttachment = emailService.getEmailDetailAsAttachment(email); // print details - if (FaxToMailUIUtil.print(demandDetailAttachment, true)) { + if (FaxToMailUIUtil.print(demandDetailAttachment, true, getContext().getConfig())) { printedFiles.add(demandDetailAttachment.getFilename()); } else { @@ -127,7 +127,7 @@ public class PrintOnDefaultPrinterAction extends AbstractFaxToMailAction { for (AttachmentFile attachmentFile : attachmentsToPrintByDemand.get(demandeUIModel)) { if (attachmentFile != null) { boolean printable = FaxToMailUIUtil.isFileTypeEditable(attachmentFile.getFilename()); - if (printable && FaxToMailUIUtil.print(attachmentFile, true)) { + if (printable && FaxToMailUIUtil.print(attachmentFile, true, getContext().getConfig())) { printedFiles.add(attachmentFile.getFilename()); } else { @@ -151,7 +151,7 @@ public class PrintOnDefaultPrinterAction extends AbstractFaxToMailAction { // print another page for non printed attachments if (!nonPrintedAttachment.isEmpty()) { String errorPageContent = generateErrorPageStream(nonPrintedAttachment); - FaxToMailUIUtil.printText("nonprintedattachement", errorPageContent, true); + FaxToMailUIUtil.printText("nonprintedattachement", errorPageContent, true, getContext().getConfig()); } handler.showInformationMessage(t("faxtomail.print.success.message", printedFileNb)); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/PDFEditorUIHandler.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/PDFEditorUIHandler.java index 4b82d9ed..74b1c506 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/PDFEditorUIHandler.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/pdfeditor/PDFEditorUIHandler.java @@ -723,7 +723,7 @@ public class PDFEditorUIHandler extends AbstractFaxToMailUIHandler<PDFEditorUIMo public void print() { PDFEditorUIModel model = getModel(); AttachmentFile attachmentFile = model.getNotNullFile(); - boolean print = FaxToMailUIUtil.print(attachmentFile, false); + boolean print = FaxToMailUIUtil.print(attachmentFile, false, getContext().getConfig()); // TODO kmorin 20140702 à mettre dans une action ou avec un loading ou qqchose // j'ai essayé une action vite fait mais ca ferme l'éditeur à la fin de l'action 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 7a245dce..84fbd5a8 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 @@ -22,6 +22,7 @@ package com.franciaflex.faxtomail.ui.swing.util; * #L% */ +import com.franciaflex.faxtomail.FaxToMailConfiguration; import com.franciaflex.faxtomail.persistence.entities.Attachment; import com.franciaflex.faxtomail.persistence.entities.AttachmentFile; import com.franciaflex.faxtomail.persistence.entities.DemandType; @@ -101,6 +102,7 @@ import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.awt.image.RenderedImage; import java.awt.print.PageFormat; +import java.awt.print.Paper; import java.awt.print.Printable; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; @@ -436,7 +438,7 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { * @param defaultPrinter if {@code true}, do not display print dialog and print with default printer * @return true if file has been printed, false otherwise */ - public static boolean print(AttachmentFile attachmentFile, boolean defaultPrinter) { + public static boolean print(AttachmentFile attachmentFile, boolean defaultPrinter, FaxToMailConfiguration config) { boolean result; FileInputStream fileInputStream = null; try { @@ -449,7 +451,7 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { fileInputStream = new FileInputStream(file); - result = printWithPdfRenderer(attachmentFile.getFilename(), fileInputStream, defaultPrinter); + result = printWithPdfRenderer(attachmentFile.getFilename(), fileInputStream, defaultPrinter, config); } catch (IOException | DocumentException e) { throw new ApplicationTechnicalException( @@ -469,7 +471,7 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { * @param defaultPrinter if {@code true}, do not display print dialog and print with default printer * @return true if file has been printed, false otherwise */ - public static boolean printText(String printName, String text, boolean defaultPrinter) { + public static boolean printText(String printName, String text, boolean defaultPrinter, FaxToMailConfiguration config) { boolean result; FileInputStream fileInputStream = null; ByteArrayInputStream byteArrayInputStream = null; @@ -482,7 +484,7 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { File file = convertFileToPdf(byteArrayInputStream, FileType.TEXT); fileInputStream = new FileInputStream(file); - result = printWithPdfRenderer(printName, fileInputStream, defaultPrinter); + result = printWithPdfRenderer(printName, fileInputStream, defaultPrinter, config); } catch (IOException | DocumentException e) { throw new ApplicationTechnicalException( @@ -504,7 +506,8 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { * @return true if file has been printed, false otherwise */ //TODO kmorin print in an action - protected static boolean printWithPdfRenderer(String printName, FileInputStream fis, boolean defaultPrinter) { + protected static boolean printWithPdfRenderer(String printName, FileInputStream fis, boolean defaultPrinter, + final FaxToMailConfiguration config) { boolean result = false; PDDocument pdDocument = null; @@ -529,6 +532,16 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { return NO_SUCH_PAGE; } + //get back margin + int marginMillimeter = config.getDefaultPrintMargin(); + + //Init pageFormat with margin from conf (do not use default params) + Paper paper = pageFormat.getPaper(); + double margin = marginMillimeter*2.83465; // convert millimeters to points + paper.setImageableArea(margin, margin, paper.getWidth() - margin * 2, paper.getHeight() + - margin * 2); + pageFormat.setPaper(paper); + double paperWidth = (int) pageFormat.getImageableWidth(); double paperHeight = (int) pageFormat.getImageableHeight(); int paperX = (int) pageFormat.getImageableX(); @@ -570,6 +583,9 @@ public final class FaxToMailUIUtil extends ApplicationUIUtil { log.debug("image width : " + width); log.debug("image height : " + height); } + + //use full size + graphics.setClip(paperX,paperY, width, height); graphics.drawImage(image, paperX, paperY, width, height, null); return PAGE_EXISTS; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.