From 2fca54cd476b2e6273a2278efe00bf72b0250f0a Mon Sep 17 00:00:00 2001 From: pablo rodriguez <58742538+1-pablo-rodriguez@users.noreply.github.com> Date: Wed, 5 Jul 2023 18:38:16 +0200 Subject: [PATCH] =?UTF-8?q?Modifier=20les=20marges=20gauches=20et=20droite?= =?UTF-8?q?=20des=20feuilles=20d'=C3=A9margement.=20R=C3=A9p=C3=A9tition?= =?UTF-8?q?=20de=20l'ent=C3=AAte=20de=20la=20tableau=20sur=20chaque=20feui?= =?UTF-8?q?lle=20imprim=C3=A9e.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/baseUFRHG/createEmargement.java | 48 +++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/src/baseUFRHG/createEmargement.java b/src/baseUFRHG/createEmargement.java index 6947e42..20753dc 100644 --- a/src/baseUFRHG/createEmargement.java +++ b/src/baseUFRHG/createEmargement.java @@ -2,9 +2,12 @@ package baseUFRHG; import java.awt.BorderLayout; import java.awt.Dimension; +import java.awt.print.PageFormat; +import java.awt.print.PrinterJob; import java.io.FileOutputStream; import java.io.IOException; +import javax.print.attribute.standard.PageRanges; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; @@ -21,11 +24,14 @@ import org.apache.poi.ss.usermodel.FillPatternType; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.PrintSetup; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageMargins; public class createEmargement extends JFrame{ @@ -209,7 +215,7 @@ public class createEmargement extends JFrame{ //Définir la largeur de la colonne B (2 cm) - int widthInCharsB = (int) (1.8 * 256 / 0.146); + int widthInCharsB = (int) (1.9 * 256 / 0.146); sheet.setColumnWidth(1, widthInCharsB); sheet.autoSizeColumn(0); @@ -222,7 +228,7 @@ public class createEmargement extends JFrame{ // sheet.setColumnWidth(4, widthInCharsE); // Estimer la largeur de la feuille A4 en unités de 1/256ème de caractère - int a4WidthUnits = 22000 ; //(17 * 256)/0.146; // Largeur de la feuille A4 en unités de 1/256ème de caractère + int a4WidthUnits = 26000 ; //(17 * 256)/0.146; // Largeur de la feuille A4 en unités de 1/256ème de caractère // int a4WidthUnits = 16250; // Obtenir la largeur totale des colonnes A à D en unités de 1/256ème de caractère int widthOfColumnsAtoD = 0; @@ -240,8 +246,38 @@ public class createEmargement extends JFrame{ sheet.getHeader().setCenter("Emargement : " + nameFile); // Définir le pied de page - sheet.getFooter().setCenter("Page " + HeaderFooter.page()); - + sheet.getFooter().setCenter("Page " + HeaderFooter.page() ); + + + // Obtenir l'objet CTPageMargins associé à la feuille + CTPageMargins pageMargins = ((org.apache.poi.xssf.usermodel.XSSFSheet) sheet).getCTWorksheet().getPageMargins(); + + // Définir les marges gauche et droite en pouces + double leftMarginInches = 0.2; // des pouces + double rightMarginInches = 0.2; // des pouces + + // Conversion des pouces en unités de l'échelle de l'imprimante + double leftMarginUnits = leftMarginInches ; // 1 pouce = 2.54 cm, 1 cm = 10000 unités + double rightMarginUnits = rightMarginInches ; + + // Définir les marges gauche et droite + pageMargins.setLeft(leftMarginUnits); + pageMargins.setRight(rightMarginUnits); + + + Row headerRow = sheet.getRow(4); // Récupérer la ligne d'entête (ligne 5) + Cell[] headerCells = new Cell[headerRow.getLastCellNum()]; // Tableau pour stocker les cellules de l'entête + + for (int j = 0; j < headerRow.getLastCellNum(); j++) { + headerCells[j] = headerRow.getCell(j); // Récupérer chaque cellule de l'entête + } + + // Définir l'impression de la feuille avec répétition de la ligne d'entête sur chaque page + PrintSetup printSetup = sheet.getPrintSetup(); + printSetup.setFitWidth((short) 1); + printSetup.setFitHeight((short) 0); + sheet.setRepeatingRows(CellRangeAddress.valueOf("5:5")); // Répéter la ligne d'entête sur chaque page + } // Enregistrer le classeur dans un fichier @@ -255,8 +291,8 @@ public class createEmargement extends JFrame{ }catch (IOException e) { System.out.println(e.toString()); -// e.printStackTrace(); - JOptionPane.showMessageDialog(null, e.toString(), "Erreur dans la class CreateCalcWorkbook", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, "Erreur dans la class CreateCalcWorkbook.
" + + "Avez-vous fermé le classeur : "+ nameFile +" ?

" +e.toString() + "", "Erreur dans la class CreateCalcWorkbook.", JOptionPane.ERROR_MESSAGE); } return null; }