From 7eff5efdc85a51cde8992344c884681da6784a1f Mon Sep 17 00:00:00 2001 From: SiboVG Date: Sat, 13 Jul 2024 01:35:57 +0200 Subject: [PATCH 1/3] [#2483] Support more (larger) paper sizes --- .../java/info/openrocket/swing/gui/print/PaperSize.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/swing/src/main/java/info/openrocket/swing/gui/print/PaperSize.java b/swing/src/main/java/info/openrocket/swing/gui/print/PaperSize.java index a31b2d18f..0b45bea7f 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/print/PaperSize.java +++ b/swing/src/main/java/info/openrocket/swing/gui/print/PaperSize.java @@ -12,11 +12,16 @@ import com.itextpdf.text.PageSize; import com.itextpdf.text.Rectangle; public enum PaperSize { + A1("A1", PageSize.A1), + A2("A2", PageSize.A2), A3("A3", PageSize.A3), A4("A4", PageSize.A4), A5("A5", PageSize.A5), - LETTER("Letter", PageSize.LETTER), - LEGAL("Legal", PageSize.LEGAL); + ANSI_D("ANSI D", new Rectangle(22 * 72, 34 * 72)), + ANSI_C("ANSI C", new Rectangle(17 * 72, 22 * 72)), + TABLOID("Tabloid (ANSI B)", PageSize.TABLOID), + LEGAL("Legal", PageSize.LEGAL), + LETTER("Letter (ANSI A)", PageSize.LETTER); private final String name; private final Rectangle size; From d52fa4733e063d1f71b61fcd191585537b2d2588 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Sat, 13 Jul 2024 01:49:21 +0200 Subject: [PATCH 2/3] Add alternative paper size names --- .../openrocket/swing/gui/print/PaperSize.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/swing/src/main/java/info/openrocket/swing/gui/print/PaperSize.java b/swing/src/main/java/info/openrocket/swing/gui/print/PaperSize.java index 0b45bea7f..c69d8c69a 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/print/PaperSize.java +++ b/swing/src/main/java/info/openrocket/swing/gui/print/PaperSize.java @@ -3,6 +3,7 @@ package info.openrocket.swing.gui.print; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; +import java.util.List; import java.util.Locale; import org.slf4j.Logger; @@ -19,16 +20,18 @@ public enum PaperSize { A5("A5", PageSize.A5), ANSI_D("ANSI D", new Rectangle(22 * 72, 34 * 72)), ANSI_C("ANSI C", new Rectangle(17 * 72, 22 * 72)), - TABLOID("Tabloid (ANSI B)", PageSize.TABLOID), + TABLOID("Tabloid (ANSI B)", PageSize.TABLOID, "Tabloid", "ANSI B"), LEGAL("Legal", PageSize.LEGAL), - LETTER("Letter (ANSI A)", PageSize.LETTER); + LETTER("Letter (ANSI A)", PageSize.LETTER, "Letter", "ANSI A"); private final String name; + private final List alternativeNames; private final Rectangle size; - - private PaperSize(String name, Rectangle size) { + + PaperSize(String name, Rectangle size, String... alternativeNames) { this.name = name; this.size = size; + this.alternativeNames = List.of(alternativeNames); } public Rectangle getSize() { @@ -163,6 +166,11 @@ public enum PaperSize { if (p.name.equalsIgnoreCase(size)) { return p; } + for (String alt : p.alternativeNames) { + if (alt.equalsIgnoreCase(size)) { + return p; + } + } } return null; } From 33f0e2a2e69178583625e96a105b86c9eb8d1316 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Sat, 13 Jul 2024 02:03:43 +0200 Subject: [PATCH 3/3] Don't hardcode points per inch --- .../main/java/info/openrocket/swing/gui/print/PaperSize.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swing/src/main/java/info/openrocket/swing/gui/print/PaperSize.java b/swing/src/main/java/info/openrocket/swing/gui/print/PaperSize.java index c69d8c69a..ccc2532ef 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/print/PaperSize.java +++ b/swing/src/main/java/info/openrocket/swing/gui/print/PaperSize.java @@ -18,8 +18,8 @@ public enum PaperSize { A3("A3", PageSize.A3), A4("A4", PageSize.A4), A5("A5", PageSize.A5), - ANSI_D("ANSI D", new Rectangle(22 * 72, 34 * 72)), - ANSI_C("ANSI C", new Rectangle(17 * 72, 22 * 72)), + ANSI_D("ANSI D", new Rectangle(22 * PrintUnit.POINTS_PER_INCH, 34 * PrintUnit.POINTS_PER_INCH)), + ANSI_C("ANSI C", new Rectangle(17 * PrintUnit.POINTS_PER_INCH, 22 * PrintUnit.POINTS_PER_INCH)), TABLOID("Tabloid (ANSI B)", PageSize.TABLOID, "Tabloid", "ANSI B"), LEGAL("Legal", PageSize.LEGAL), LETTER("Letter (ANSI A)", PageSize.LETTER, "Letter", "ANSI A");