Merge pull request #347 from darddan/main

Add side stitch booklet rearrangement
This commit is contained in:
Anthony Stirling 2023-09-05 21:44:11 +01:00 committed by GitHub
commit 7a98f30d05
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 2 deletions

View file

@ -52,7 +52,7 @@ public class RearrangePagesPDFController {
} }
private enum CustomMode { private enum CustomMode {
REVERSE_ORDER, DUPLEX_SORT, BOOKLET_SORT, ODD_EVEN_SPLIT, REMOVE_FIRST, REMOVE_LAST, REMOVE_FIRST_AND_LAST, REVERSE_ORDER, DUPLEX_SORT, BOOKLET_SORT, SIDE_STITCH_BOOKLET_SORT, ODD_EVEN_SPLIT, REMOVE_FIRST, REMOVE_LAST, REMOVE_FIRST_AND_LAST,
} }
private List<Integer> removeFirst(int totalPages) { private List<Integer> removeFirst(int totalPages) {
@ -114,6 +114,18 @@ public class RearrangePagesPDFController {
return newPageOrder; return newPageOrder;
} }
private List<Integer> sideStitchBooklet(int totalPages) {
List<Integer> newPageOrder = new ArrayList<>();
for (int i = 0; i < (totalPages + 3) / 4; i++) {
int begin = i * 4;
newPageOrder.add(Math.min(begin + 3, totalPages - 1));
newPageOrder.add(Math.min(begin, totalPages - 1));
newPageOrder.add(Math.min(begin + 1, totalPages - 1));
newPageOrder.add(Math.min(begin + 2, totalPages - 1));
}
return newPageOrder;
}
private List<Integer> oddEvenSplit(int totalPages) { private List<Integer> oddEvenSplit(int totalPages) {
List<Integer> newPageOrder = new ArrayList<>(); List<Integer> newPageOrder = new ArrayList<>();
for (int i = 1; i <= totalPages; i += 2) { for (int i = 1; i <= totalPages; i += 2) {
@ -135,6 +147,8 @@ public class RearrangePagesPDFController {
return duplexSort(totalPages); return duplexSort(totalPages);
case BOOKLET_SORT: case BOOKLET_SORT:
return bookletSort(totalPages); return bookletSort(totalPages);
case SIDE_STITCH_BOOKLET_SORT:
return sideStitchBooklet(totalPages);
case ODD_EVEN_SPLIT: case ODD_EVEN_SPLIT:
return oddEvenSplit(totalPages); return oddEvenSplit(totalPages);
case REMOVE_FIRST: case REMOVE_FIRST:

View file

@ -23,6 +23,7 @@
<option value="REVERSE_ORDER">Reverse Order</option> <option value="REVERSE_ORDER">Reverse Order</option>
<option value="DUPLEX_SORT">Duplex Sort</option> <option value="DUPLEX_SORT">Duplex Sort</option>
<option value="BOOKLET_SORT">Booklet Sort</option> <option value="BOOKLET_SORT">Booklet Sort</option>
<option value="SIDE_STITCH_BOOKLET_SORT">Side Stitch Booklet Sort</option>
<option value="ODD_EVEN_SPLIT">Odd-Even Split</option> <option value="ODD_EVEN_SPLIT">Odd-Even Split</option>
<option value="REMOVE_FIRST">Remove First</option> <option value="REMOVE_FIRST">Remove First</option>
<option value="REMOVE_LAST">Remove Last</option> <option value="REMOVE_LAST">Remove Last</option>
@ -53,4 +54,4 @@
<div th:insert="~{fragments/footer.html :: footer}"></div> <div th:insert="~{fragments/footer.html :: footer}"></div>
</div> </div>
</body> </body>
</html> </html>