mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-01-10 00:06:51 +01:00
Merge pull request #347 from darddan/main
Add side stitch booklet rearrangement
This commit is contained in:
commit
7a98f30d05
@ -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:
|
||||||
|
@ -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>
|
||||||
|
Loading…
Reference in New Issue
Block a user