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;
}